21Cs61: Software Engineering & Project Management
21Cs61: Software Engineering & Project Management
21Cs61: Software Engineering & Project Management
ENGINEERING &
PROJECT
MANAGEMENT
2
REFERENCE TEXTBOOKS
1. Roger S. Pressman: Software Engineering-A
Practitioners approach, 7th Edition, Tata
McGraw Hill.
2. Bob Hughes, Mike Cotterell, Rajib Mall:
Software Project Management, 6th Edition,
McGraw Hill Education, 2018.
3
MODULE 1
Software and Software Engineering: The nature of Software, The unique nature
of WebApps, Software Engineering, The software Process, The software
Engineering practice, The software myths, How it all starts
Textbook 1: Chapter 1: 1.1 to 1.7
SOFTWARE AND
SOFTWARE
ENGINEERING
5
WHAT IS A SOFTWARE?
• Software is:
(1) instructions (computer programs) that when executed
provide desired features, function, and performance;
(2) data structures that enable the programs to
adequately manipulate information, and
(3) descriptive information in both hard copy and virtual
forms that describes the operation and use of the
programs.
Software is a collection of executable program codes, associated
libraries and documentation
CHARACTERISTICS OF
6
SOFTWARE
• Software is developed or engineered; it is not manufactured
• Software doesn’t “wear out.”
• Although the industry is moving toward component-based
construction, most software continues to be custom built.
CHALLENGES IN SOFTWARE
ENGINEERING
• Open-world computing: to develop systems and application software
that will allow mobile devices, personal computers, and enterprise
systems communicate across vast networks.
• Netsourcing: to architect simple (e.g., personal financial planning) and
sophisticated applications that provide a benefit to targeted end-user
markets worldwide.
• Open source: to build source code that is self-descriptive and to develop
techniques that will enable both customers and developers to know what
changes have been made and how those changes manifest themselves
within the software.
9
LEGACY SOFTWARE
• Dayani et al: Legacy software systems were
developed decades ago and have been continually
modified to meet changes in business requirements
and computing platforms.
• Liu et al: “many legacy systems remain supportive to
core business functions and are ‘indispensable’ to the
business.”
• Characteristics:-
* longevity
* business criticality.
* poor quality
10
WHAT TYPES OF CHANGES ARE MADE TO LEGACY
SYSTEMS?
SOFTWARE ENGINEERING-
A LAYERED TECHNOLOGY
•Quality Focus: Bedrock that
supports software engineering
•Process : -Glue that holds the
technology layers together
-Framework for effective
delivery of software engineering
technology
•Methods:- How-to?
•Tools:- provide
automated/semi-automated
support for process and methods
14
SOFTWARE PROCESS
•A process is a collection of activities, actions, and tasks that are performed
when some work product is to be created.
•An activity strives to achieve a broad objective and is applied regardless of
the application domain, size of the project, complexity of the effort, or
degree of rigor with which software engineering is to be applied.
•An action (e.g., architectural design) encompasses a set of tasks that
produce a major work product (e.g., an architectural design model).
•A task focuses on a small, but well-defined objective (e.g., conducting a unit
test) that produces a tangible outcome.
15
FIVE GENERIC PROCESS FRAMEWORK
ACTIVITIES
SOFTWARE ENGINEERING
PRACTICE
1. Understand the problem (communication and analysis).
PROBLEM
• Who has a stake in the solution to the problem? That is, who
are the stakeholders?
• What are the unknowns? What data,
functions, and features are required to properly solve the
problem?
• Can the problem be compartmentalized? Is it
possible to represent smaller problems that may be easier to
understand?
• Can the problem be represented graphically? Can an
analysis model be created?
2. PLAN THE SOLUTION 20
PRACTICES (PROPOSED BY
DAVID HOOKER)
• The First Principle: The Reason It All Exists - to provide value to its users
• The Second Principle: Keep It Simple
• The Third Principle: Maintain the Vision
• The Fourth Principle: What You Produce, Others Will Consume - someone else
will have to understand what you are doing
• The Fifth Principle: Be Open to the Future
• The Sixth Principle: Plan Ahead for Reuse
• The Seventh principle: Think!
SOFTWARE MYTHS 24
—erroneous beliefs about software and the process that is used to build it
• Management myths
• Customer myths.
• Practitioner’s myths.
25
MANAGEMENT MYTHS
• Myth 1: We already have a book that’s full of standards and
procedures for building software. Won’t that provide my people
with everything they need to know?
CUSTOMER MYTHS
• Myth 1: A general statement of objectives is sufficient to
begin writing programs—we can fill in the details later.
• Myth 1: Once we write the program and get it to work, our job is done. (60 to 80
percent of all effort expended on software will be expended after it is delivered to the
customer for the first time.)
• Myth 2: Until I get the program “running” I have no way of assessing its quality(the
technical review)
• Myth 3: The only deliverable work product for a successful project is the working
program ((e.g., models, documents, plans)
PROCESS MODELS
• A process is defined as a collection of work activities, actions, and tasks that are
performed when some work product is to be created.
• Each framework activity is populated by a set of software engineering actions.
• Each software engineering action is defined by a task set that identifies the work
tasks that are to be completed, the work products that will be produced, the
quality assurance points that will be required, and the milestones that will be
used to indicate progress.
Process Flow—describes how the frame work activities and the actions
and tasks that occur within each framework activity are organized with respect
to sequence and time
29
30
PROCESS FLOW
• Linear Process Flow
• Iterative Process Flow
• Evolutionary Process Flow
• Parallel Process Flow
31
• A linear process flow executes each of the five framework activities in
sequence, beginning with communication and culminating with deployment
1. DEFINING A FRAMEWORK
ACTIVITY
• 1. Make contact with stakeholder via telephone.
• 2. Discuss requirements and take notes.
• 3. Organize notes into a brief written statement of requirements.
• 4. E-mail to stakeholder for review and approval.
34
• Patterns can be used to describe a problem (and solution) associated with a framework
activity (e.g., planning) or
PATTERN TYPE
1. Stage pattern —defines a problem associated with a framework activity for the
process. A stage pattern incorporates multiple task patterns that are relevant to the
stage (framework activity).
An example of a stage pattern might be EstablishingCommunication. This pattern
would incorporate the task pattern RequirementsGathering and others.
2. Task pattern —defines a problem associated with a software engineering action or
work task and relevant to successful software engineering practice (e.g.,
RequirementsGathering is a task pattern).
3. Phase pattern —define the sequence of framework activities that occurs within the
process, even when the overall flow of activities is iterative in nature. An example of a
phase pattern might be SpiralModel or Prototyping.
39
INITIAL CONTEXT
• Describes the conditions under which the pattern applies.
• Prior to the initiation of the pattern:
(1) What organizational or team-related activities have already occurred?
(2) What is the entry state for the process?
(3) What software engineering information or project information already
exists?
SOLUTION.
• Describes how to implement the pattern successfully.
• Describes how the initial state of the process (that exists before the pattern is
implemented) is modified as a consequence of the initiation of the pattern.
• Describes how software engineering information or project information that is
available before the initiation of the pattern is transformed as a consequence of
the successful execution of the pattern.
RESULTING CONTEXT. 41
RELATED PATTERNS
• Provide a list of all process patterns that are directly related to this one. This
may be represented as a hierarchy or in some other diagrammatic form.
• For example, the stage pattern Communication encompasses the task patterns:
ProjectTeam, CollaborativeGuidelines, ScopeIsolation,
RequirementsGathering, ConstraintDescription, and ScenarioCreation.
42
IMPROVEMENT
Assessment attempts to understand the current state of the software
process with the intent of improving it.
• Standard CMMI Assessment Method for Process Improvement
(SCAMPI)—provides a five-step process assessment model that
incorporates
• five phases: initiating, diagnosing, establishing, acting, and learning.
• The SCAMPI method uses the SEI CMMI as the basis for assessment.
45
CMM-Based Appraisal for Internal Process Improvement (CBA IPI)—
• provides a diagnostic technique for assessing the relative maturity of a software
organization;
• uses the SEI CMM as the basis for the assessment
SPICE (ISO/IEC15504)—
• A standard that defines a set of requirements for Software process assessment.
• The intent of the standard is to assist organizations in developing an objective evaluation
of the efficacy of any defined software process .
ISO 9001:2000 for Software—
• a generic standard that applies to any organization that wants to improve the overall
quality of the products, systems, or services that it provides.
• Therefore, the standard is directly applicable to software organizations and companies
PRESCRIPTIVE PROCESS 46
MODELS
• Prescriptive process models were originally proposed to bring order to the chaos
of software development
• Each process model also prescribes a process flow (also called a work
flow)—that is, the manner in which the process elements are interrelated to one
another.
47
PRESCRIPTIVE
PROCESS
MODELS
WATERFALL
PROTOTYPING
MODEL
LIMITATIONS OF WATERFALL
MODEL
• 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.
• 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 exists at the beginning of many projects.
• The customer must have patience. A working version of the program(s) will not
be available until late in the project time span. A major blunder, if undetected
until the working program is reviewed, can be disastrous
50
1.2)V MODEL
The V-model
illustrates
how verification
and
validation
actions are
associated with
earlier
engineering
actions.
51
INCREMENTAL PROCESS
MODEL
III) EVOLUTIONARY PROCESS 53
MODEL
3.1) PROTOTYPING
• When your customer has a legitimate need, but is clueless about the details, develop a
prototype as a first step.
• A quick design focuses on a representation of those aspects of the software that
will be visible to end users
54
PROTOTYPING PARADIGM
55
PROTOTYPING
• Define the rules of the game at the beginning
• i.e, All stakeholders should agree that the prototype is built
to serve as a mechanism for defining requirements.
• It is then discarded (at least in part), and the actual software
is engineered with an eye toward quality.
LIMITATIONS OF PROTOTYPING 56
(milestones—a combination of work products and conditions that are attained along the
path of the spiral)
58
SPIRAL MODEL.
59
SPECIALIZED PROCESS
MODELS
• Specialized process models take on many of the characteristics of one or more of
the traditional models
I. Component-Based Development
II. Formal methods model
III. Aspect-Oriented Software Development
62
COMPONENT-BASED
DEVELOPMENT
• Integrate Commercial off-the shelf (COTS) software components.
• Eg of COTS: payment gateway
• Constructs applications from prepackaged software components
DEVELOPMENT
–STEPS INVOLVED
1) Available component-based products are researched and evaluated for the
application domain in question.
2) Component integration issues are considered.
3) A software architecture is designed to accommodate the components.
4) Components are integrated into the architecture.
5) Comprehensive testing is conducted to ensure proper functionality.
64
LIMITATIONS OF FORMAL
METHODS MODEL
• The development of formal models is currently quite time consuming and
expensive.
• Because few software developers have the necessary background to apply
formal methods, extensive training is required.
• It is difficult to use the models as a communication mechanism for technically
unsophisticated customers.
66
ASPECT-ORIENTED
SOFTWARE DEVELOPMENT
• Aspectual requirements define those crosscutting concerns that have an impact
across the software architecture.
• Provides a methodological approach for defining, specifying, designing and
constructing aspect
• Eg of aspects: security, memory requirement etc
CASE STUDY I-THE DEFECT 67
MANAGEMENT PROCESS AT
VAULT
• The amount of customers impacted by bugs in their document
management system has risen, according to Vault, a software
development firm. Currently, their main method for receiving problem
reports from clients is via email. Vault intends to replicate its defect
management procedure, which entails problem reporting, classification,
job assignment, and follow-up, in order to address this problem. Vault
can increase customer satisfaction and optimise their defect management
process by employing a more complex and perhaps automated solution.
CASE STUDY 2 — SOFTWARE 68
DEVELOPMENT AT SERENE
AEROSPACE SYSTEMS
• Building sophisticated data transmission and storage systems for
spacecraft is Serene Aerospace Systems’ area of expertise. The
sophisticated and multi-step development techniques used by Serene are
necessary to meet the systems’ complexity and reliability requirements.
Finding sufficient competent personnel for each project has grown to be
difficult as a result of the company’s expansion. Serene intends to
address this issue by modelling its development procedures to make
them more approachable for project managers and developers with less
experience. This will guarantee their software development initiatives’
efficiency and consistency.
69
CONSULTANCY OF
MILLENNIUM
• An IT consulting company called Millennium Pvt Ltd advises regional
businesses on how to solve business difficulties using the right software. The
advising department frequently suggests system changes to current clients, while
the maintenance department is separate from it. Millennium intends to model
their procedure in order to optimise this revenue-generating activity. They will
be able to collect client IT status updates in a fast and correct manner as a result,
which will improve their proposals for system changes
CASE STUDY 5 — ONLINE 71