ScholarQuill logoScholarQuillUniversity Notes
  • Notes
  • Past Papers
  • Blogs
  • Todo
Login
ScholarQuill logoScholarQuillUniversity Notes
Login
NotesPast PapersBlogsTodo
More
SubjectsDiscussionCGPA CalculatorGPA CalculatorStudent PortalCourse Outline
About
About usPrivacy PolicyReportContact
Notes
Past Papers
Blogs
Todo
Analytics
    Current Subject
    🧩
    Software Engineering
    PCOMP2112
    Progress0 / 6 topics
    Topics
    1. Software Engineering 20242. Software Engineering 20253. Software Engineering 20234. Software Engineering 20195. Software Engineering 20226. Software Engineering 2023 Repeater
    PCOMP2112›Software Engineering 2023 Repeater
    Software EngineeringTopic 6 of 6

    Software Engineering 2023 Repeater

    10 minread
    1,712words
    Intermediatelevel

    Section II (Short Answer)

    Q.2. i) According to you which SDLC model is the best? There is no single "best" SDLC model; the ideal choice depends entirely on the specific context of the project. If the requirements are perfectly clear, stable, and well-documented from the beginning, the Waterfall Model might be best. However, for modern, dynamic projects where requirements are expected to change or are initially unclear, an Agile Model or Prototype Model is far superior due to their flexibility and iterative feedback loops.

    Q.2. ii) Who is software project manager and what is his/her role? A software project manager is the professional responsible for the planning, execution, monitoring, and closure of a software development project. Their primary role revolves around managing the "4Ps": organizing the People (team members), defining the Product scope, selecting the right software development Process, and tracking the Project schedule, budget, and risks to ensure successful delivery.

    Q.2. iii) What is mean by software scope? Software scope clearly defines the exact boundaries of a project by outlining what the software will do and, equally importantly, what it will not do. It establishes the specific features, functions, performance constraints, and interfaces required for the final product, ensuring that the development team and the client agree on the deliverables before coding begins.

    Q.2. iv) What is feasibility study? A feasibility study is a preliminary assessment conducted before committing resources to a project to determine if it is practical and worth the investment. It evaluates the project across several key dimensions: Technical feasibility (do we have the capability to build it?), Economic feasibility (can we afford it and will it make a profit?), and Operational feasibility (will the end-users actually adopt it?).

    Q.2. v) What are functional and non-functional requirements?

    • Functional Requirements define exactly what the system must do. They are the specific behaviors and features, such as "The system must allow the user to log in" or "The system must calculate total sales."
    • Non-functional Requirements define how well the system must perform those functions. They specify quality attributes such as performance, security, and usability, like "The system must load in under 2 seconds" or "User passwords must be encrypted."

    Q.2. vi) What is modularization? Modularization is the software engineering practice of breaking down a large, complex system into smaller, manageable, and independent components known as modules. This approach simplifies development, allows different team members to work on different parts of the system simultaneously, and makes the final software much easier to test and maintain.

    Q.2. vii) Differentiate between coupling and cohesion. Coupling refers to the degree of interdependence between different modules; good software design requires low coupling so that a change in one module does not unexpectedly break another. Cohesion refers to how strongly related and focused the internal responsibilities of a single module are; good design requires high cohesion, meaning a module should perform exactly one well-defined task.

    Q.2. viii) Discuss level 0 Data flow diagram? A Level-0 Data Flow Diagram (DFD), also known as a Context Diagram, provides the highest-level, bird's-eye view of a system. It represents the entire software system as a single process (usually drawn as one main circle) and illustrates how it interacts with external entities (drawn as rectangles) through the flow of data (drawn as labeled arrows) entering and exiting the system.


    Section III (Essay Type)

    Q-3) Compare and Contrast Water Fall Model and Prototype Model of Software Development.

    The Waterfall Model The Waterfall Model is a traditional, linear-sequential approach to software development. It relies on heavy upfront planning, strict documentation, and completing one phase of development entirely before proceeding to the next (Requirements →\rightarrow→ Design →\rightarrow→ Implementation →\rightarrow→ Testing →\rightarrow→ Deployment).

    The Prototype Model The Prototype Model is an iterative approach. Instead of finalizing all requirements upfront, developers quickly build a simplified, working version of the software (a prototype). This is shared with the customer to gather immediate feedback, which is used to refine requirements and build a better version, repeating the cycle until the final product is approved.

    Comparison and Contrast Table

    Aspect Waterfall Model Prototype Model
    Requirement Clarity Best when requirements are perfectly clear and frozen before development begins. Best when requirements are vague, unknown, or expected to change frequently.
    Flexibility to Change Highly rigid; extremely difficult and costly to accommodate changes once a phase is passed. Highly flexible; accommodates changes easily through continuous iterations.
    User Involvement High at the beginning (planning) and end, but practically zero during the coding phase. High throughout the entire lifecycle; relies heavily on continuous user feedback.
    Product Delivery The user only sees working software at the very end of the project lifecycle. The user interacts with a working (though incomplete) software prototype very early.
    Risk Factor High risk; if an initial requirement was misunderstood, it is discovered too late to fix cheaply. Low risk; errors in requirements or design are caught early during prototype evaluations.

    Q-4) Define the term Metrics? Discuss Size Oriented Metrics and Function Oriented Metrics.

    Defining Metrics In software engineering, Metrics are quantifiable, numerical measurements used to assess the quality, efficiency, cost, and progress of the software development process and the software product itself. They help managers make data-driven decisions rather than relying on guesswork.

    1. Size-Oriented Metrics Size-oriented metrics measure the software based on its physical size or volume.

    • Measurement Unit: The standard unit is LOC (Lines of Code) or KLOC (Thousands of Lines of Code).
    • How it is used: Managers look at historical project data and divide effort, errors, or cost by KLOC to establish productivity rates (e.g., Errors per KLOC, Cost per LOC, Pages of documentation per KLOC).
    • Drawbacks: It is highly dependent on the programming language used. A program written in Assembly language will have vastly more lines of code than the exact same program written in Python, making LOC a potentially misleading measure of actual effort or complexity.

    2. Function-Oriented Metrics Function-oriented metrics attempt to measure the software based on the actual "functionality" or utility delivered to the end-user, rather than the physical size of the code.

    • Measurement Unit: The standard unit is the Function Point (FP).
    • How it is used: FPs are calculated by counting specific user-facing system parameters (like the number of user inputs, user outputs, external interfaces, and database inquiries) and weighting them by their complexity.
    • Advantages: Unlike LOC, Function Points are entirely independent of the programming language. This makes it a much better metric for estimating project costs and timelines before a single line of code is written or a language is even chosen.

    Q-5) Why we use object oriented approach? Discuss different characteristics of object oriented approach with diagrams.

    Why We Use the Object-Oriented (OO) Approach The Object-Oriented approach is widely used because it maps complex software concepts directly to real-world entities, making systems easier to conceptualize. It promotes modularity by breaking systems down into self-contained objects, enables high reusability (saving time and money) by allowing developers to use existing code for new projects, and drastically improves maintainability, as localized changes to one object rarely crash the entire system.

    Characteristics of Object-Oriented Approach

    1. Classes and Objects A Class is a logical blueprint or template defining the data and behaviors of an entity. An Object is a physical, memory-allocated instance of that class.

    • Exam Diagram Description: Draw a blueprint document labeled "Class: Car". Draw arrows pointing downward to three physical cars labeled "Object 1: Civic", "Object 2: Corolla", "Object 3: Mustang".

    2. Encapsulation Encapsulation is the practice of bundling data (variables) and the methods (functions) that manipulate that data into a single, secure unit (the object). It hides the internal state of the object from the outside world, requiring other objects to interact with it only through strictly defined public methods.

    • Exam Diagram Description: Draw a pill/capsule shape. Inside the left half, write "Private Data". Inside the right half, write "Public Methods". This visually represents them locked together securely.

    3. Inheritance Inheritance allows a new class (child/subclass) to automatically acquire the properties and methods of an existing class (parent/superclass). This is the primary driver of code reusability.

    • Exam Diagram Description: Draw a box labeled "Vehicle (Parent Class)" at the top. Draw arrows pointing down from it to two new boxes: "Car (Child Class)" and "Motorcycle (Child Class)".

    4. Polymorphism Meaning "many forms," polymorphism allows different objects to respond to the exact same method call in their own unique way.

    • Exam Diagram Description: Draw a box representing an action called Draw(). Draw arrows pointing from Draw() to three different geometric shapes: a Circle, a Square, and a Triangle.

    Q-6) Discuss System Development Life Cycle.

    Introduction to SDLC The System Development Life Cycle (SDLC) is a structured, standard framework that defines the necessary phases involved in developing a software application. Its purpose is to provide a logical, systematic plan to design, build, test, and deliver high-quality software that meets customer expectations while adhering to time and budget constraints.

    Core Phases of the SDLC

    1. Requirement Gathering and Analysis: This is the foundation of the project. Business analysts meet with clients to understand exactly what problem the software needs to solve. The output is usually a formal Software Requirement Specification (SRS) document that acts as the source of truth for the rest of the project.
    2. System Design: Architects take the SRS and design the blueprint for the system. They create structural models, design database schemas, map out the user interface, and decide on the hardware and software technologies that will be utilized.
    3. Implementation (Coding): This is the longest phase. Developers take the design documents and write the actual source code. The system is built module by module using appropriate programming languages and frameworks.
    4. Testing: Once coded, QA engineers rigorously test the software. They perform unit, integration, and system testing to identify bugs, security flaws, and ensure the software behaves exactly as defined in the SRS document.
    5. Deployment: After passing testing, the software is deployed to the production environment where end-users can access it. This may involve training users and migrating data from old systems.
    6. Maintenance: The SDLC does not end at launch. During maintenance, developers provide ongoing support. They patch newly discovered security vulnerabilities, fix residual bugs, and update the software with new features as the business environment evolves.
    Previous topic 5
    Software Engineering 2022

    Past Papers

    Open this section to load past papers

    Click on Show Past Papers to see past papers.
    On This Page
      Reading Stats
      Est. reading time10 min
      Word count1,712
      Code examples0
      DifficultyIntermediate