0% found this document useful (0 votes)
29 views

Chapter 1Introduction to Software Engineering--And Process Models--.Docx

Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
29 views

Chapter 1Introduction to Software Engineering--And Process Models--.Docx

Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 8

Suggested Assignments for Software Engineering mini

Project
1. Prepare detailed statement of problem for the
selected mini project
2. Identify suitable process model for the same.
3. Develop Software Requirement Specification for the
project.
4. Identify scenarios and develop UML Use case
5. Other artifacts: Class Diagram, activity diagram,
sequence diagram, component diagram and any other
diagrams as applicable to the project.

Sample project titles: (These are just samples, students


are suggested to take up different case studies)
1. Online mobile recharge system
2. Credit calculation system
3. Image sharing and editing system
4. Internal examination system
5. e-learning management system
Chapter 1
Title : Introduction To Software Engineering
and Process Models
8 lectures
Definition of Software
What is Software?
• Computer Software is the product that software professional design and
built.
It includes
• Programs
• Content
• Documents

Nature of Software Engineering


What is software engineering?
• The process: a systematic procedure used for the analysis, design,
implementation, test and maintenance of software.
• Related to the product: the software should be efficient, reliable,
usable, modifiable, portable, testable, reusable, maintainable,
interoperable, and correct.
The definition in IEEE Standard:

• The application of a systematic, disciplined, quantifiable approach to


the development, operation, and maintenance of software, that is, the
application of engineering to software.
• The study of approaches as in 1993: The Joint IEEE Computer
Society and ACM Steering Committee for the establishment of software
engineering as a profession.

Changing nature of software


Software Applications
• System software: system software is collection of programs written to
service other programs. E.g. Compilers, editors, file management utilities,
operating systems, drivers, networking etc.
• Application software: Application software consists of standalone
programs that solve a specific business need. E.g. Point of sole transaction
processing, real time manufacturing control etc.
• Engineering/scientific software: Computer-aided design, system
simulation, and other interactive applications have begun to take on real-time
and even system software characteristics.
• Embedded software: Embedded software resides within a product or
system and is used to implement and control features and functions for the
end-user and for the system itself. Embedded software can perform limited
and esoteric functions. e.g. digital functions in an automobile such as fuel
control, dashboard displays, braking systems, etc.
• Product-line software: Designed to provide a specific capability for use by
many different customers product-line software can focus on a limited and
esoteric marketplace or address mass consumer markets. e.g. inventory
control, word processing, spreadsheets, computer graphics, multimedia etc.
• WebApps (Web applications): “WebApps,” span a wide array of
applications. In their simplest form, webApps can be little more than a set of
linked hypertext files that present information using text and limited graphics.
• AI software: Al software makes use of non numerical algorithms to solve
complex problems that are not amenable to computation or straight forward
analysis. e.g. robotics.

Software Process
Process- “ A particular method of doing something”
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 (e.g., communication with
stakeholders) 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 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.
Generic Process Model
A generic process framework for software engineering defines five framework
activities—communication, planning, modelling , construction, and
deployment.
A generic process framework for software engineering encompasses five
activities:
Communication. Before any technical work can commence, it is critically
important to communicate and collaborate with the customer (and other
stakeholders11 The intent is to understand stakeholders’ objectives for the
project and to gather requirements that help define software features and
functions.
Planning. Any complicated journey can be simplified if a map exists. A
software project is a complicated journey, and the planning activity creates a
“map” that helps guide the team as it makes the journey. The map—called a
software project plan—defines the software engineering work by describing
the technical tasks to be conducted, the risks that are likely, the resources that
will be required, the work products to be produced, and a work schedule.

Modeling. Whether you’re a landscaper, a bridge builder, an aeronautical


engineer, a carpenter, or an architect, you work with models every day. You
create a “sketch” of the thing so that you’ll understand the big picture—what it
will look like architecturally, how the constituent parts fit together, and many
other characteristics. If required, you refine the sketch into greater and greater
detail in an effort to better understand the problem and how you’re going to
solve it. A software engineer does the same thing by creating models to better
understand software requirements and the design that will achieve those
requirements.
Construction. This activity combines code generation (either manual or
automated) and the testing that is required to uncover errors in the code.
Deployment. The software (as a complete entity or as a partially completed
increment) is delivered to the customer who evaluates the delivered product
and provides feedback based on the evaluation.

Umbrella Activities
In addition, a set of umbrella activities—project tracking and control, risk
management, quality assurance, configuration management, technical
reviews, and others—are applied throughout the process.

1. Software project tracking and control: This is an activity in which the


team can assess progress and take corrective action to maintain the
schedule. Take action to keep the project on time by comparing the project’s
progress against the plan.
2. Risk management: The risks that may affect project outcomes or quality
can be analyzed. Analyze potential risks that may have an impact on the
software product’s quality and outcome.
3. Software quality assurance: These are activities required to maintain
software quality. Perform actions to ensure the product’s quality.
4. Formal technical reviews: It is required to assess engineering work
products to uncover and remove errors before they propagate to the next
activity. At each level of the process, errors are evaluated and fixed.
5. Software configuration management: Managing of configuration process
when any change in the software occurs.
6. Work product preparation and production: The activities to create
models, documents, logs, forms, and lists are carried out.
7. Reusability management: It defines criteria for work product reuse.
Reusable work items should be backed up, and reusable software
components should be achieved.
8. Measurement: In this activity, the process can be defined and collected.
Also, project and product measures are used to assist the software team in
delivering the required software.

The Process Framework


A process framework establishes the foundation for a complete software
engineering process by identifying a small number of framework activities that are
applicable to all software projects.

Process Adaptation
A process adopted for one project might be significantly different than a
process adopted for another project. Among the differences are
• Overall flow of activities, actions, and tasks and the interdependencies
among them • Degree to which actions and tasks are defined within each framework
activity
• Degree to which work products are identified and required

Process Flow—
Process flow describes how the framework activities and the actions and tasks that
occur within each framework activity are organized with respect to sequence and
time.
1. linear process flow - executes each of the five framework activities in
sequence, beginning with communication and culminating with deployment
2. An iterative process - flow repeats one or more of the activities before
proceeding to the next .
3. An evolutionary process flow executes the activities in a “circular” manner.
Each circuit through the five activities leads to a more complete version of the
software
4. A parallel process flow - executes one or more activities in parallel with other
activities.
1.6 Prescriptive Process Models
1.6.1 The Waterfall Model
1.6.2 Incremental Process Models
1.6.3 Evolutionary Process Models
1.6.4 Concurrent Models
1.6.5 The Unified Process

You might also like