Professional Documents
Culture Documents
Lecture 3 To 8
Lecture 3 To 8
1 10/20/23
Layered Technology
2 10/20/23
3 10/20/23
Layered Technology
4 10/20/23
• Starts from Bottom
Quality
• Process is done to
develop sw.
• Each process contains
many methods
• Tools is automate or
semi automate.
• Tools support process
and methods
5 10/20/23
• 1. Quality—
• Software engineering must rest on an organizational commitment to quality.
• Continuous process improvement culture.
• mature approaches to software engineering.
• Acts as bed rock that gives quality focus
• 2. Process—
• The foundation for software engineering is the process layer.
• Defines a framework for a set of Key Process Areas (KPAs) that must be
established for effective delivery of software engineering technology.
• Management control of software projects
• Establishes the contest in which technical methods are applied..
• models, documents, data, reports, forms.
6 10/20/23
• work products (models, documents, data, reports, etc.) are
produced,
• milestones are established,
• quality is ensured,
• and change is properly managed.
7 10/20/23
• 3. Methods—
9 10/20/23
10 10/20/23
11 10/20/23
12 10/20/23
13 10/20/23
The Software Process
14 10/20/23
15 10/20/23
five key activities
• Software process
• Process framework
• Umbrella activities
• Framework activity #1
• Software Engineering action
16 10/20/23
• Each framework activity is populated by a set of S/W eng
actions –
• A collection of related tasks that produces a major S/W eng
work product (design is a S/W eng action).
• Each action is populated with individual work tasks that
accomplish some part of the work implied by the action.
17 10/20/23
Generic process framework
• Communication: involves heavy communication with the customer (and
other stakeholders) and encompasses requirements gathering.
• Planning: Describes the technical tasks to be conducted, the risks that are
likely, resources that will be required, the work products to be produced and
a work schedule.
• Modeling: encompasses the creation of models that allow the developer and
customer to better understand S/W req. and the design that will achieve
those req.
• Umberlla activities
• S/W project tracking and control: allows the team to assess progress
against the project plan and take necessary action to maintain schedule.
• Risk Management: Assesses the risks that may affect the outcome of the
project or the quality.
19 10/20/23
• Formal Technical Review: uncover and remove errors before they
propagate to the next action.
20 10/20/23
• Task Sets : Collection of Software engineering work tasks,
project mile stones, workproducts, quality assurance points
• Task sets satisfy the project team
21 10/20/23
SEI: Software Engineering Institute
• Has a model on sw engg capabilities.
• State organizations has different levels of process maturity,
• It uses a assessment of 5 point grading scheme.
• The scheme defines key activities required at different levels of
process maturity.
• Level 1 ( Initial)
• Level 2 ( repeatable)
• Level 3 ( Defined )
• Level 4 ( managed )
• Level 5 ( Optimizing)
22 10/20/23
• Level 1 ( Initial) Sw process is Adhoc, chiotic
• Only few process are defined and requires individual effort.
• Level 2 ( repeatable): Proj management process is establishes to
track cost, schedule & functionality
• Aim : is to repeat earlier success.
24 10/20/23
Phases of a problem solving loop
25 10/20/23
26 10/20/23
Program vs. software product
27 10/20/23
28 10/20/23
29 10/20/23
30 10/20/23
SOFTWARE PROCESS MODEL (SOFTWARE
LIFE CYCLE MODEL)
• A software life cycle model (also called process model) is a descriptive and
diagrammatic representation of the software life cycle.
• A life cycle model represents all the activities required to make a software
product.
• Maps the different activities performed on a software product from its
inception to retirement.
• systematic and disciplined manner.
• For team – When & what to do..?
• Example…
In a team, every one given freedom to do his wish on divided parts…
programming.
test documenting
Design phase …
31 10/20/23
• A software life cycle model defines entry and exit criteria for
every phase.
32 10/20/23
33 10/20/23
Waterfall Model
34 10/20/23
Waterfall Model
• Phase 1
• Requirements specification
35 10/20/23
• Phase 2
• Design phase is to transform the requirements
• 2 types
• The end-product of this phase is a set of program modules that have been
individually tested.
• Each module is unit tested to determine the correct working of all the
individual modules
38 10/20/23
System Testing
• α
• – testing: It is the system testing performed by the development
team, internal employees of the organization
• Alpha testing requires a lab environment or testing environment , Long execution cycle
• Alpha testing is to ensure the quality of the product before moving to Beta testing
• β
• – testing: It is the system testing performed by a friendly set of
customers, Clients or End Users, at a client location
• doesn't require any lab environment or testing environment & Most issues will be
implemented in future versions of the product
• Reliability, Security, Robustness are checked during Beta Testing
• Acceptance testing:
• It is the system testing performed by the customer himself after
the product delivery to determine whether to accept or reject the
delivered product.
39 10/20/23
• Maintenance– Phase 5
• Developing to maintenance effort is 40:60
41 10/20/23
Waterfall model
42 10/20/23
High lights
43 10/20/23
Advantages of Waterfall Model
• The advantage of waterfall development is that it allows for
departmentalization and control.
• A schedule can be set with deadlines for each stage of development and a
product can proceed through the development process model phases one by
one.
• It is easy to manage due to the rigidity of the model – each phase has
specific deliverables and a review process.
• In this model, phases are processed and completed one at a time and they do
not overlap.
• Waterfall model works well for smaller projects where requirements are
very well understood.
44 10/20/23
Disadvantages of waterfall model
• It is difficult to estimate time and cost for each phase of the
development process.
45 10/20/23
46 10/20/23
47 10/20/23
48 10/20/23
Prototyping Model
49 10/20/23
50 10/20/23
51 10/20/23
Prototyping Model
52 10/20/23
53 10/20/23
Prototyping Model
• Mechanism for gaining better understanding of the customer’s needs:
54 10/20/23
• A prototype of the actual product is preferred in situations such as:
• • technical issues are not clear -- A Project involves writing a compiler and the
development team has never written a compiler.
• the team can consider a simple language, & check issues.
•
55 10/20/23
56 10/20/23
Advantages of Prototype model
• Sometimes it helps to demonstrate the concept to prospective
investors to get funding for project.
58 10/20/23
Spiral Model
59 10/20/23
60 10/20/23
61 10/20/23
Spiral Model
62 10/20/23
• spiral with many loops.
• number of loops in the spiral is not fixed.
• For example,
• the innermost loop might be concerned with feasibility study.
The next loop with requirements specification, the next one with
design, and so on
• Each phase in this model is split into four sectors (or quadrants)
63 10/20/23
• First quadrant (Objective Setting)
• •During the first quadrant, it is needed to identify the objectives of the phase.
• •Examine the risks associated with these objectives
64 10/20/23
• Third Quadrant (Development and Validation)
• Review the results achieved so far with the customer and plan
the next iteration around the spiral.
65 10/20/23
Situations to use spiral or Applications
• When costs there is a budget constraint and risk evaluation is
important.
67 10/20/23
Advantages of Spiral Model
68 10/20/23
Disadvantages of Spiral Model
• Management is more complex.
69 10/20/23
Incremental Models
1. Iterative Incremental Model & 2 . Rapid Application
Development Model
70 10/20/23
71 10/20/23
Incremental models
• Designed, implemented and tested incrementally
73 10/20/23
74 10/20/23
75 10/20/23
Advantages of Incremental Model
• Generates working software quickly and early during the
software life cycle.
76 10/20/23
Advantages
77 10/20/23
Disadvantages
• Each phase of an iteration is rigid and do not overlap each
other.
78 10/20/23
Where to use Incremental Model
• Mostly such model is used in web applications and product
based companies.
79 10/20/23
Rapid Application Development Model
80 10/20/23
Rapid application development model
• Is incremental software process model.
• Focus on short development cycle.( 60 to 90 days) very short devp. cycle
• Can be mentioned as the high speed adaptation of waterfall model.
• Each team do their own fraction of work
• Requires heavy resourses and people should be heavily committed.
• 1&2. Communication & planning is needed
• 3. modeling contains three major phases.
• business modeling
• data modeling
• process modeling.
• 4. Construction
• component reuse
• automatic code generation
• testing.
• 5. Deployment.
• integration
• delivery & feedback
81 10/20/23
• Business process model:
• Data Model:
• used in software engineering to produce a type of conceptual
data model (or semantic data model) of a system
82 10/20/23
83 10/20/23
Risk in RAD
84 10/20/23
Concurrent Development Model
85 10/20/23
86 10/20/23
87 10/20/23
88 10/20/23
89 10/20/23
90 10/20/23
91 10/20/23
92 10/20/23
93 10/20/23
Computer-aided software engineering (CASE)
94 10/20/23
Components of CASE Tools
95 10/20/23
• Central Repository - CASE tools require a central repository,
which can serve as a source of common, integrated and
consistent information/ Database.
96 10/20/23
Case Tools Types
• Diagram tools : These tools are used to represent system
components, data and control flow among various software
components and system structure in a graphical form.
• Example: Flowchart maker
• Process Modeling Tools:
• Creates software process model.
• choose a process model or modify it as per the requirement of
software product.
• Example:Eclipse process framework
• Project Management Tools:
• project planning, cost and effort estimation, project scheduling
and resource planning.
• Example: Trac Project
97 10/20/23
• Documentation Tools:
• Documentation in a software project starts prior to the software
process.
• Analysis Tools:
• gather requirements, automatically check for any inconsistency,
inaccuracy in the diagrams, data redundancies or erroneous
omissions.
• Example-- Accept 360.
98 10/20/23
• Design Tools:
• help software designers to design the block structure of the
software.
• further be broken down in smaller modules using refinement
techniques.
• Example :Animated Software Design
99 10/20/23
• Programming Tools :
• programming environments like IDE (Integrated Development
Environment), in-built modules library and simulation tools.
• include features for simulation and testing.
• Example :Cscope to search code in C, eclipse
• Prototyping Tools :
• These tools help us to build rapid prototypes based on existing
information.
• Example:Mockup Builder.
• Maintenance Tools:
101 10/20/23
Historical Aspects
102 10/20/23
• Another study of 2,80000 projects in 2000 only 28% completed sucessfully.
103 10/20/23
Economic Aspects
104 10/20/23
• Reason 2
• Engineers agree on speed, quality…of CT New.
• But
• CT new..Code difficult to maintain.
• Then cost will be higher over life of the product.
• if the developer don’t want to maintain the product then he will recommend CT
New.
105 10/20/23
• Situation 2:
• Client insist that CT old is to be used expecting the lifetime cost is lower.
• Both from client side & programmer side the aim is to reduce costs.
• Long term effects of using particular technique generally ignored in interest of short
term gain & the decision is made by client.
106 10/20/23
Maintenance Aspects
107 10/20/23
• 5.postdelivary maintenance- changes done unce sw delivered ( software repair).
• Perfective maintenance- changes that the client think will improve the effectiveness
of the product
• Eg: additional functionality, decreased response time..
• 6. Retirement:
108 10/20/23
Specification Document
109 10/20/23
• In 1970’s there are two distinct activities..
• 1. software development..
• 2. maintenance.
110 10/20/23
• ISO- International organization for standardization.
• 147 countries.
• central secretariat in Geneva.
111 10/20/23
• IEEE–
• Institute of electrical & electronic engineers.
• non profit organization.
• For development of technology related to electricity.
• 395000 members across 150 countries.
• Highly sited publications, conferences, technology standards, professional &
educational activities.
112 10/20/23
Importance of post delivery maintainance
113 10/20/23
• Fault in requirements may also appear in specifications, design, and code.
114 10/20/23
115 10/20/23
116 10/20/23
Modern Views of maintenance…
117 10/20/23
Team development aspects
118 10/20/23
Planning phase
• 3. Till end of project the management needs to monitor the SPMP, & can watch for any
deviation.
119 10/20/23
Testing
120 10/20/23
Planning Phase
• Three types of planning.
• 1. At the beginning of project preliminary planning takes place for managing
the requirements & analysis phase.
121 10/20/23
Documentation
• Impossible to perform testing without seeing the documents that show how
the product is supposed to behave.
122 10/20/23