SEPM Question Paper Solution May 2023
SEPM Question Paper Solution May 2023
SEPM Question Paper Solution May 2023
activities. (sepm)
Software engineering is the discipline concerned with the systematic approach to the
development, operation, and maintenance of software. It involves applying engineering
principles and practices to software development, aiming to create reliable, efficient,
and maintainable software systems.
Umbrella activities in software engineering refer to overarching processes that are
applied throughout a software project to manage and control various aspects such as
progress, quality, change, and risk. These activities ensure the smooth execution of the
project and the delivery of a high-quality product. Here are the typical umbrella
activities:
● Software Project Tracking and Control: This activity enables the software team
to monitor progress against the project plan and take necessary actions to
maintain the schedule.
● Risk Management: It involves identifying and assessing risks that may impact
the project’s outcome or the quality of the product, and implementing strategies
to mitigate those risks.
● Software Quality Assurance: This activity defines and conducts various
processes to ensure the quality of the software, including testing, code reviews,
and quality audits.
● Technical Reviews: Technical reviews are conducted to evaluate software
engineering work products and identify errors before they propagate to the next
stage of development.
● Measurement: This activity involves defining and collecting process, project, and
product measures to ensure that the software meets stakeholders’ needs and
can be used in conjunction with other framework and umbrella activities.
● Software Configuration Management: It focuses on managing changes
throughout the software development process, ensuring that all changes are
properly tracked, evaluated, and implemented.
● Reusability Management: This activity defines criteria for reusing work products,
including software components, and establishes mechanisms to achieve
reusability.
● Work Product Preparation and Production: Encompassing activities required to
create various work products such as models, documents, logs, and forms, this
ensures that all necessary artifacts are prepared and maintained throughout the
project lifecycle.
Suppose after some changes, the version of the configuration object changes
from 1.0 to 1.1. Minor corrections and changes result in versions 1.1.1 and 1.1.2,
which is followed by a major update that is object 1.2. The development of object
1.0 continues through 1.3 and 1.4, but finally, a noteworthy change to the object
results in a new evolutionary path, version 2.0. Both versions are currently
supported.
● Change control – Controlling changes to Configuration items (CI). The change
control process is explained in Figure below:A change request (CR) is submitted
and evaluated to assess technical merit, potential side effects, the overall impact
on other configuration objects and system functions, and the projected cost of
the change. The results of the evaluation are presented as a change report, which
is used by a change control board (CCB) —a person or group who makes a final
decision on the status and priority of the change. An engineering change Request
(ECR) is generated for each approved change. Also, CCB notifies the developer in
case the change is rejected with proper reason. The ECR describes the change to
be made, the constraints that must be respected, and the criteria for review and
audit. The object to be changed is “checked out” of the project database, the
change is made, and then the object is tested again. The object is then “checked
in” to the database and appropriate version control mechanisms are used to
create the next version of the software.
● Configuration auditing – A software configuration audit complements the formal
technical review of the process and product. It focuses on the technical
correctness of the configuration object that has been modified. The audit
confirms the completeness, correctness, and consistency of items in the SCM
system and tracks action items from the audit to closure.
● Reporting – Providing accurate status and current configuration data to
developers, testers, end users, customers, and stakeholders through admin
guides, user guides, FAQs, Release notes, Memos, Installation Guide,
Configuration guides, etc.
Importance of Software Configuration Management
● Effective Bug Tracking: Linking code modifications to issues that have been
reported, makes bug tracking more effective.
● Continuous Deployment and Integration: SCM combines with continuous
processes to automate deployment and testing, resulting in more dependable
and timely software delivery.
● Risk management: SCM lowers the chance of introducing critical flaws by
assisting in the early detection and correction of problems.
● Support for Big Projects: Source Code Control (SCM) offers an orderly method to
handle code modifications for big projects, fostering a well-organized
development process.
● Reproducibility: By recording precise versions of code, libraries, and
dependencies, source code versioning (SCM) makes builds repeatable.
● Parallel Development: SCM facilitates parallel development by enabling several
developers to collaborate on various branches at once.
● Requirement Analysis:
● Collecting comprehensive requirements from stakeholders.
● Documenting requirements in a requirement specification document.
● System Design:
● Converting requirements into system design.
● Creating system architecture and design documents.
● Implementation (or Coding):
● Dividing the system design into small units or modules and coding them.
● Integrating all the modules together after unit testing.
● Integration and Testing:
● Testing the integrated system to ensure it meets the specified requirements.
● Performing different types of testing like system testing, integration testing, and
acceptance testing.
● Deployment:
● Deploying the completed product to the production environment.
● Ensuring it is functional in the real-world setting.
● Maintenance:
● Performing ongoing maintenance tasks such as bug fixing, updates, and
enhancements.
● Managing changes and new requirements post-deployment.
Advantages of the Waterfall Model:
● Simplicity and Ease of Use: The straightforward, sequential approach is easy to
understand and manage.
● Clear Milestones: Each phase has clear objectives and deliverables, making progress easy
to track.
● Well-Documented: Comprehensive documentation helps in better understanding and
communication of requirements and designs.
● Structured Approach: The model is disciplined and the process is well-defined, which is
beneficial for projects with fixed requirements.
Disadvantages of the Waterfall Model:
● Lack of Flexibility: Difficult to accommodate changes once the project is in the later stages.
● Late Testing: Testing phase comes late in the development cycle, increasing the risk of
encountering significant issues late in the process.
● Customer Involvement: Limited customer involvement during the development process,
which may lead to a product that does not fully meet customer needs.
● Assumes Requirements are Fixed: It assumes that all requirements can be gathered
upfront, which is often not the case in real-world projects.
Incremental-Model
Phases of incremental model
Requirement analysis: In Requirement Analysis At any time, the plan is made just for the next
increment and not for any kind of long-term plan. Therefore, it is easier to modify the version as per
the needs of the customer.
Design & Development: At any time, the plan is made just for the next increment and not for any kind
of long-term plan. Therefore, it is easier to modify the version as per the needs of the customer. The
Development Team first undertakes to develop core features (these do not need services from other
features) of the system. Once the core features are fully developed, then these are refined to
increase levels of capabilities by adding new functions in Successive versions. Each incremental
version is usually developed using an iterative waterfall model of development.
Deployment and Testing: After Requirements gathering and specification, requirements are then
split into several different versions starting with version 1, in each successive increment, the next
version is constructed and then deployed at the customer site. In development and Testing the
product is checked and tested for the actual process of the model.
Implementation: In implementation After the last version (version n), it is now deployed at the client
site.
Incremental Model: In the incremental model, we first build the project with basic features and then
evolve the project in every iteration, it is mainly used for large projects. The first step is to gather the
requirements and then perform analysis, design, code, and test and this process goes the same
over and over again until our final project is ready.
Spiral Model : The spiral model is a combination of waterfall and iterative models and in this, we
focused on risk handling along with developing the project with the incremental and iterative
approach, producing the output quickly as well as it is good for big projects. The software is created
through multiple iterations using a spiral approach. Later on, after successive development the final
product will develop, and the customer interaction is there so the chances of error get reduced.
Q4. a) What are the different phases in the project life cycle
with suitable examples?
The project life cycle refers to the series of phases that a project goes through from
initiation to completion. Each phase represents a distinct stage in the project where
specific tasks, deliverables, and objectives are accomplished. the phases in a project
life cycle along with suitable examples:
● Initiation Phase:
● This is the first phase of the project life cycle where the project is
conceived, authorized, and defined.
● Example: Imagine a company wants to develop a new mobile application.
In the initiation phase, the project stakeholders define the project’s
purpose, scope, objectives, and initial budget.
● Planning Phase:
● In this phase, detailed planning is carried out to define project scope,
objectives, deliverables, resources, schedule, and budget.
● Example: Continuing with the mobile application project, in the planning
phase, the project team creates a project plan outlining tasks, milestones,
dependencies, and resource allocation. They also conduct risk analysis
and develop a communication plan.
● Execution Phase:
● This phase involves executing the project plan, coordinating resources,
and completing project deliverables as outlined in the plan.
● Example: For the mobile application project, the execution phase involves
actual development activities like coding, designing user interfaces,
implementing features, and conducting testing.
● Controlling Phase:
● During this phase, project performance is monitored, and project activities
are controlled to ensure that the project stays on track in terms of scope,
schedule, budget, and quality.
● Example: In the mobile application project, the project manager monitors
progress against the project plan, tracks budget expenditure, manages
risks, and resolves issues as they arise. They may also conduct regular
meetings to review project status.
● Closing Phase:
● This is the final phase of the project life cycle where the project is formally
completed, and project closure activities are conducted.
● Example: After the mobile application is developed, tested, and deployed
to users, the closing phase involves activities such as obtaining client
acceptance, documenting lessons learned, releasing project resources,
and handing over deliverables to the operations team.
Test-Driven Development (TDD): Developers write automated tests before writing code, following a
"red-green-refactor" cycle. This practice ensures that code meets the specified requirements and is
continuously tested for regressions.
Continuous Integration: Developers integrate their code frequently, ideally several times a day, to
detect and resolve integration issues early. Automated build and test processes are used to ensure
the system remains stable.
DEC SOLUTION
Example:
Grid System: Websites like Pinterest use a masonry grid layout where images are arranged in a
flexible grid that optimizes space and ensures a visually appealing display of varied content sizes.
2. Typography
Typography involves the selection of fonts, sizes, spacing, and the overall readability of text.
Example:
Google Docs: Google Docs uses a clean, sans-serif font (Arial) as its default. The typography is
simple, ensuring that the text is legible and that the interface feels modern and uncluttered.
3. Color Scheme
Color schemes are crucial for creating an appealing visual experience and can also influence user
behavior and emotions.
Example:
Spotify: Spotify’s dark interface with green accents provides a modern, immersive experience that is
easy on the eyes, especially in low-light conditions. The green color highlights key interactive
elements, guiding users intuitively.
4. Buttons and Icons
Buttons and icons are interactive elements that users click or tap to perform actions. They need to
be intuitive and easy to recognize.
Example:
Facebook: Facebook uses a consistent design for its buttons, like the blue “Like” button with a
thumbs-up icon, making it immediately recognizable and easy to use.
5. Navigation
Navigation design involves creating menus, links, and other tools that help users find what they’re
looking for.
Example:
Amazon: Amazon’s navigation bar at the top of the page features a search bar, categories, and
account options, ensuring users can easily find products, track orders, and manage their accounts.
6. Forms and Input Fields
Forms and input fields are where users enter data, such as login details or search queries. These
elements need to be straightforward and efficient.
Example:
Twitter Sign-Up Form: Twitter’s sign-up form is simple and straightforward, asking for basic
information in a step-by-step manner. This reduces user friction and makes the sign-up process
quicker.
7. Feedback Mechanisms
Feedback mechanisms provide users with responses to their actions, ensuring they understand what
has happened.
Example:
Instagram Likes: When a user double-taps on a photo to like it, a heart icon appears momentarily,
providing immediate visual feedback that the action has been registered.
8. Consistency
Consistency in UI design means using uniform design elements and patterns across the interface,
making it predictable and easier for users to learn.
Example:
Apple’s iOS: Apple’s iOS maintains consistent design patterns across all its apps, such as uniform
button styles and navigation gestures. This consistency helps users to quickly become familiar with
new apps on the platform.
9. Accessibility
Accessibility ensures that the UI is usable by people with varying abilities, including those with
disabilities.
Example:
BBC Website: The BBC website includes features like adjustable text size, screen reader
compatibility, and high-contrast color schemes to accommodate users with visual impairments.
10. Microinteractions
Microinteractions are small animations or design elements that provide subtle feedback to users.
Example:
LinkedIn Notifications: LinkedIn uses small red dots to indicate new notifications. When clicked, a
smooth dropdown animation provides a seamless user experience.
Coupling:
Coupling refers to the degree of interdependence between modules or components within a software
system. It measures how closely connected or dependent one module is on another. There are
different types of coupling:
Low Coupling: Modules are loosely connected and have minimal interdependencies. Changes in one
module have little or no impact on other modules.
High Coupling: Modules are tightly connected and have strong interdependencies. Changes in one
module may require modifications in multiple other modules.
Cohesion:
Cohesion refers to the degree to which the elements within a module or component are related to
each other. It measures how well the responsibilities of a module are focused and how closely
related its functionality is. There are different levels of cohesion:
Low Cohesion: Module elements are loosely related and perform unrelated or loosely related
functions. This indicates poor organization and may lead to a lack of clarity and increased
complexity.
High Cohesion: Module elements are closely related and perform a single, well-defined function or
set of related functions. This indicates a well-organized and focused module with clear
responsibilities.