Se Unit 1 Minor
Se Unit 1 Minor
ENGINEERING
C.Vinoth
Research Scholar
Dept CSE
NIT Trichy
UNIT –I Software Engineering Modeling
The Evolving role of Software - The changing Nature of Software -
Legacy software - A generic view of process - A layered Technology - A
Process Framework - Software Development Life cycle (SDLC) Models:
WaterFall Model - Prototype Model - Spiral Model - Evolutionary
Development Models - Iterative Enhancement Models - Incremental
Process Model - Concurrent Development Model - The Unified Process.
Introduction to software Engineering
The Evolving role of software
• Dual role of Software
A Product
- Information transformer-producing, managing and displaying
A Vehicle for delivering a product
- Control of computer(operating system),the communication of
information(networks) and the creation of other programs
Introduction to software Engineering
• Software is defined as
1. Instructions
- Programs that when executed provide desired function
2. Data structures
-Enable the programs to adequately manipulate information
3. Documents
-Describe the operation and use of the programs.
What Careers Are There in Software
Engineering ?
• Career opportunities in software engineering are driven by new
technologies in automobiles, aviation, data management,
telecommunications, factory control, robotics, defense, and security.
Software engineers may develop computer games, business
applications, operating systems, network control systems, and more.
• Two common jobs within software engineering are Applications
developers and Systems developers.
• Applications developers design computer applications, such as
games, for consumers. They may create custom software for a specific
customer or commercial software to be sold to the general public.
Some applications developers create databases or programs for use
internally or online.
“Infant
Failure rate
Time
Basic
Forms Principles
basic SW
• The process framework encompasses a set of umbrella activities that are applicable
across the entire software process.
Framework activities
TTTasks
Milestones,delierables
SQA points
Umbrella activities
A PROCESS FRAMEWORK
Advantage:
• It can serve as a useful process model in situations where requirements are fixed and work is to
proceed to complete in a linear manner.
The problems that are sometimes encountered when the waterfall model is applied are:
1. Real projects rarely follow the sequential flow that the model proposes. Although the linear
model can accommodate iteration, it does so indirectly. As a result, changes can cause confusion
as the project team proceeds.
2. It is often difficult for the customer to state all requirements explicitly. The waterfall model
requires this and has difficulty accommodating the natural uncertainty that exist at the beginning
of many projects.
3. The customer must have patience. A working version of the programs will not be available until
late in the project time-span. If a major blunder is undetected then it can be disastrous until the
program is reviewed.
Prototype Model
Concept: Build a quick working model (prototype) to understand user requirements
better.
Prototyping is more commonly used as a technique that can be implemented within
the context of anyone of the process model.
Steps:
1.Build a prototype.
2.Get user feedback.
3.Refine and develop the final system.
Key Features:
•Reduces misunderstandings.
•Useful for unclear requirements.
The prototyping paradigm
• The prototyping paradigm begins with communication. The software engineer and
customer meet and define the overall objectives for the software, identify whatever
requirements are known, and outline areas where further definition is mandatory.
• Prototyping iteration is planned quickly and modeling occurs. The quick design leads to
the construction of a prototype. The prototype is deployed and then evaluated by the
customer/user.
• Iteration occurs as the prototype is tuned to satisfy the needs of the customer, while at
the same time enabling the developer to better understand what needs to be done.
• Disadvantages of Prototyping in Software Development
• Misleading Perception of Product Readiness:
• The prototype may appear as a fully functional product to the customer.
• Underlying issues like poor quality and lack of maintainability are hidden.
• Rebuilding for quality is often Feel dissatisfied, leading to demands for quick fixes.
• Compromised Development Decisions:
• Quick implementation may involve suboptimal choices (e.g., unsuitable OS,
programming language, or inefficient algorithms).
• Temporary decisions may become permanent, negatively affecting the final product's
quality and performance.
Spiral Model
Concept: A risk-driven model combining iterative development with systematic
stages.
Phases (Repeated in spirals):
1.Planning → 2. Risk Analysis → 3. Engineering → 4. Evaluation
Key Features:
•Focuses on risk management.
•Flexible for complex projects.
Analogy: Like climbing a spiral staircase—revisiting each phase but at a higher level.
Spiral Model Overview
1.Introduction:
•Proposed by Boehm, it combines prototyping's iterative nature with the systematic approach
of the waterfall model.
•Adaptable across the entire software life cycle, from concept to maintenance.
2.Development Process:
•Software evolves through a series of evolutionary releases.
•Early iterations: Paper models or prototypes.
•Later iterations: More complete engineered systems.
3.Key Features:
•Anchor Point Milestones: Work products and conditions marked at each spiral pass.
•Iterative adjustments in project plan, cost, and schedule based on customer feedback.
4.Application of the Spiral:
•First Circuit: Concept development, starting at the spiral's core.
•Subsequent Circuits: New product development or product enhancement projects.
5.Advantages:
•Combines systematic, stepwise progress with real-world iterative adaptability.
•Operative throughout the software life cycle until product retirement.
Drawbacks of the Spiral Model
In software development, the Iterative Enhancement Model stands out due to its
Key Features:
•Feedback-driven improvements.
• Mobile app developement: Updates and improvements are often needed for mobile
apps to stay current with new devices, operating system versions and user preferences.
By using an iterative process developers can release the beta versions of their apps, get
user feedback and then improve functionality of those iterations in future release.
• Web Application Development: The requirements for developing web applications
frequently change as a result of shifting user demand and advancements in technology.
The Iterative Enhancement Model makes it possible to developed features incrementally
and guaranteeing that the application can be modified to satisfy changing user and
market demands. In later iterations it also makes it easier to incorporate new features
based on input from users.
• E-commerce Platforms: Developement in e-commerece field often involves constant
updates. Implementing an iterative approach enables the introduction of new
functionality.
Incremental Process Model
• Concept: Develop the software in small, manageable pieces (increments).
• The incremental model combines elements of linear and parallel process flows.
• The incremental model applies linear sequences in a staggered fashion as
calendar time progresses.
• When an incremental model is used, the first increment is often a core product.
• That is, basic requirements are addressed but many supplementary features
(some known, others unknown) remain undelivered.
• The core product is used by the customer (or undergoes detailed evaluation).
• As a result of use and/or evaluation, a plan is developed for the next increment.
• The plan addresses the modification of the core product to better meet the
needs of the customer and the delivery of additional features and functionality.
This process is repeated following the delivery of each increment, until the
complete product is produced
Incremental Process Model
1.Focus on Incremental Delivery:
•Each increment delivers an operational product.
•Early increments are simplified versions but provide useful capabilities to users.
•Offers a platform for user evaluation and feedback.
2.Advantages for Staffing:
•Useful when full project staffing is unavailable by the business deadline.
•Early increments can be developed with a smaller team.
•Additional staff can be added for subsequent increments if the core product is well-
received.
3.Risk Management:
•Increments can be planned to address technical risks.
•Allows functionality delivery without delays caused by dependencies (e.g., new
hardware under development).
4.Key Benefits:
•Early delivery of partial functionality.
•User feedback incorporated into subsequent increments.
•Flexible and adaptive to changing requirements and constraints.
Incremental Process Model
Concurrent Development Model
• Concept: Develop multiple parts of the software simultaneously.
• The concurrent development model, sometimes called concurrent
engineering, allows a software team to represent iterative and
concurrent elements of any of the process models described in this
SDLC Models .
• For example, the modeling activity defined for the spiral model is
accomplished by invoking one or more of the following software
engineering actions: prototyping, analysis, and design.
The concurrent model is often more appropriate for product
engineering projects where different engineering teams are involved.
Why Use This Model?
• Inception Phase:
• Vision document, business case, use-case model (10–20%).
• Elaboration Phase:
• Refined use-case model, analysis model, and architectural design.
• Construction Phase:
• Implementation model, test cases, final software increment.
• Transition Phase:
• Beta software, user feedback reports.
• Example: During elaboration, create wireframes for a messaging app's
user interface.
Unified Process with UML
• Role of UML:
• Use-case diagrams for user interactions.
• Class diagrams for system architecture.
• Sequence diagrams for process flow.
• Example: For a banking app:
• Use-case: "Transfer Funds" feature.
• Class: "Account" and "Transaction."
Advantages of Unified Process