Professional Documents
Culture Documents
SE-UNIT-I-PPT
SE-UNIT-I-PPT
6. A software does not wear out like other branches of engineering products.
A software has no spare parts than other branches of engineering products. Other
branches of engineering products are replaced by its spare parts. Therefore a
software is not replaced by spare parts but errors in software can be modified or
corrected according to user requirements changes.
1.Custom software
2. Generic software
3. Embedded software
5. Scientific software
Examples are
1.Word processor(MS-WORD), Word presentation(MS-POWERPOINT),
Spreadsheets(MS-EXCEL), Database(MS-ACCESS),Compilers, Editors
(MS-NOTEPAD),Operating system(MS-WINDOWS, LINUX ,UBUNTU,
etc.),Computergames(pubzee,ludo,chess,caroms, visecity, etc..),Accounting
packages(Tally)for small organization,
antivirus(Bitdefenderplus,nortonplus,Mcafee,Avast,Avira anti-virus, anti-virus
pro, F-Secure anti-virus safe,kaspersky anti-virus,webroot SecureAnywhere
AntiVirus, ,ESET NOD32 Antivirus,G-data Antivirus,Comodo Windows Antivirus
), etc.
3.Embedded software:
Embedded software runs on specific hardware devices are sold on pen market, such
devices are fully automated washing machines, Air conditioners(A/Cs), microwave
voven, pridge, fans and automobiles (power steering, power windows automated door
locking)etc..
1. Management myths(Imaginations)
2. Customer myths(Imaginations)
3. Practitioner's myths(Imaginations)
1. Management myths(Imaginations)
We already have a book of full standards and procedures for building
software, won’t that provide my people with everything they need to know.
My people have software development tools(CASE) after all, we buy them
a newest computer.
if we get behind schedule, we can add more programmers and catch up.
2.Customer myths(Imaginations)
A general statement of objectives is sufficient to begin writing
programs , we can fill in the details later.
Project requirements continually change, but change can be easily
accommodated , because software is flexible.
3. Practitioner's myths(Imaginations)
Once we write the program and get it to work, our job is done.
Until I get the program running. I have no way of accessing its quality.
The only deliverable work product for a successful project is the working
program.
Software will make to create voluminous and unnecessary
documentation and will invariably slow us down.
Management Myths(Imaginations):
if we get behind schedule, we can add more programmers and catch up.
Reality: Adding new programmers to late software project makes it later.
However, the new programmers are added, people who were working in late
project must spend time to educate the new added programmers(new comers).
Thus reducing time spent on product development effort. Programmers can be
added to late project only in planned and well coordinated manner.
Customer myths(Imagination’s):
Once we write the program and get it to work, our job is done.
Reality: No, the practitionaer’s should also provide maintenance of the software
Until I get the program running. I have no way of accessing its quality.
Reality:There are certain software quality measures called software quality metrics
such as formal technical(software usage) review to evaluate the quality of the software.
how much of quality that software has. That means how many no.of users use that
software. If more numbered users use the software then that software has high
quality(software has minimum no.of errors so software can be functioning or working
properly to meet the user requirements satisfaction).
The only deliverable work product for a successful project is the working
program.
Reality:The practioner’s not only produce work product(working program) and also
provide a documentation support for software usage and their operation.
We define
Software Engineering is the application of engineering to software. it is
the application of a systematic, discipline and quantifiable approach to
the development, operation and maintenance/support of software .
Software Engineering Phases
1. Who are the stake holders(customers, users) in the solution to the problem?
2. What data, function(or task) and features are required to properly solve the
problem?
1. Have you seen similar problems before? Is there existing software that implements
the data, function and features that are required?
2. Has a similar problems been solved? If so, are the elements of the solution
reusable?
3. Can sub problems be defined? if so, are solutions readily for the sub problems?
The design you have created as a road map for the software system you
want to build.
You can’t sure that your solution is perfect but you can designed a sufficient
number of tests to uncover as many errors as possible.
3. Does the solution produce the results that conform the data, function and
features that are required?
satisfies
Sub process: A process is a sequence of stages. The sequence of steps for each stage is the
process for that stage and is referred to as a sub process of the process used to develop a
high quality, low cost, low cycle time software project. The software project is to satisfy
the needs of users or clients or customers or stake holders.
satisfies
Software
configuration outcome Work
non Software
management Software
process product
Development
process
process
Used by
satisfies
4. Prioritize the
requirements.
5. E-mail to stakeholder
for review and
approval.
SOFTWARE QUALITY ASSURANCE(SQA):
Software Process Assessment and Improvement process for software quality.
A number of different approaches to process assessment and improvement process
for software quality have been proposed over past few decades.
3. SPICE(ISO/IEC 15504)
A standard that defines a set of requirements for software process assessment.
4. 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.
The Five Software Project Development Activities Called SDLC-software
development life cycle. Also called a phased development life cycle
In analysis,
we should do Requirements Engineering. It is the process of
understanding the business requirements identified in communication with stake holder.
Defining what services are expected from software project.
and, Identifying the constraints(budget, schedule, and quality) on software project
development.
Requirement document-SRS
4 Requirements validation: This activity checks the requirements for realism,
consistency, and completeness.
1. Architectural design, where you identify the overall structure of the system, the principal
components (sometimes called sub-systems or modules), their relationships, and how they are
distributed.
2. Interface design, where you define the interfaces between system components.
This interface specification must be unambiguous. With a precise interface, a component can be
used without other components having to know how it is implemented. Once interface
specifications are agreed, the components can be designed and developed concurrently.
3. Component design, where you take each system component and design how it will operate.
This may be a simple statement of the expected functionality to be implemented, with the specific
design left to the programmer. Alternatively, it may be a list of changes to be made to a reusable
component or a detailed design model. The design model may be used to automatically generate
an implementation.
4. Database design, where you design the system data structures and how these are to be
represented in a database. Again, the work here depends on whether an existing database is to be
reused or a new database is to be created.
4.Construction(coding and Testing).
This activity combines code generation (either manual or automated) and the testing
that is required to uncover errors in the code.
The system components are tested(called component testing) then the integrated
system is tested (called system testing)and, finally, the system is tested with the
customer’s data(called acceptance testing). The testing process is an iterative one
with information being fed back from later stages to earlier parts of the process.
Production phase(operation(use)&maintenance):
The production phase coincides with the deployment activity of the Software project
development process. During this phase, the ongoing use(operation) of the software
product is monitored, support for the operating environment (infrastructure) is
provided, and defect reports and requests for changes are submitted and evaluated.
The Five Software Project Development Activities Called SDLC-software
development life cycle. Also called a phased development life cycle
The Five Software Project Development Activities Called SDLC-software
development life cycle. Also called a phased development life cycle
1.communication 2.planning
3.Modelling 4.Construction
Analysis-Conceptual (or logical ) Design-physical
design Modelling by data analysis design modelling by Code Test
models called structured models UML Diagrams for
such as
Architectural Writing
DFD Interface Program
ERD Database
codes
STD Component
or Class design
DD by algorithm
Process model provides(gives) a process structure that is well suited for a class of
projects or software project(industrial strength software).
A linear process flow executes each of the five framework activities in sequence,
beginning with communication and culminating with deployment
An iterative process flow repeats one or more of the activities before proceeding to
the next.
A parallel process flow executes one or more activities in parallel with other
activities (e.g., modelling for one aspect of the software might be executed in
parallel with construction of another aspect of the software).
An Incremental An Iterative
Water fall Prototype A Spiral Process
Process Model l
Process Model Process
Model
Model
2.It is easy to administrates as each phase or each stage or each activity of software
development is completed and its work product (the outcome of each phase or stage
or activity of software development)is produced, some amount of money is given
by customer to development organization.
Applications of classical water fall model:
1.It has been the most widely used software development model.
2.It is well suited for routine types of projects where the requirements
are well understood.
It should be noted that the process flow for any increment can incorporate the
prototyping paradigm.
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.
The incremental process model focuses on the delivery of an operational product with each
increment. Early increments are stripped-down versions of the final product, but they do
provide capability that serves the user and also provide a platform for evaluation by the user.
The first circuit around the spiral might result in the development of a product
specification; subsequent passes around the spiral might be used to develop a
prototype and then progressively more advanced versions of the software. Each
pass through the planning region results in adjustments to the project plan. Cost
and schedule are adjusted based on feedback derived from the customer after
delivery. In addition, the project manager adjusts the planned number of
iterations required to complete the software.
Unlike other process models that end when software is delivered,
the spiral model can be adapted to apply throughout the life of the
computer software.
Rational Unified Process model(RUP)
The inception phase of the UP encompasses both customer communication and
planning activities. By collaborating with stakeholders, business requirements for
the software are identified; a rough architecture for the system is proposed; and a
plan for the iterative, incremental nature of the ensuring project is developed.
The Personal Software Process (PSP) gives special importance on personal measurement of both the
work product that is produced and the resultant quality of the work product. In addition PSP makes
the practitioner responsible for project planning (e.g., estimating and scheduling) and empowers the
practitioner to control the quality of all software work products that are developed.
The PSP model defines five framework activities:
Planning. This activity isolates requirements and develops both size and resource estimates. In
addition, a defect estimate (the number of defects projected for the work) is made. All metrics are
recorded on worksheets or templates. Finally, development tasks are identified and a project
schedule is created.
High-level design. External specifications for each component to be constructed are developed and
a component design is created. Prototypes are built when uncertainty exists. All issues are recorded
and tracked.
High-level design review. Formal verification methods are applied to uncover errors in the design.
Metrics are maintained for all important tasks and work results.
Development. The component-level design is refined and reviewed. Code is generated, reviewed,
compiled, and tested. Metrics are maintained for all important tasks and work results.
Postmortem. Using the measures and metrics collected (this is a substantial amount of data that
should be analyzed statistically), the effectiveness of the process is determined. Measures and
metrics should provide guidance for modifying the process to improve its effectiveness.
Team Software Process (TSP)
The goal of TSP is to build a “self directed” project team that organizes itself to produce high-
quality software.
• Build self-directed teams that plan and track their work, establish goals, and
own their processes and plans. These can be pure software teams or integrated
product teams (IPTs) of 3 to about 20 engineers.
• Show managers how to coach and motivate their teams and how to help them sustain peak
performance.
• Accelerate software process improvement by making CMM23 Level 5 behavior normal and
expected.
A self-directed team defines roles and responsibilities for each team member; tracks
quantitative project data (about productivity and quality).
A self-directed team identifies a team process that is appropriate for the project and a
strategy for implementing the process.
A self-directed team defines local standards that are applicable to the team’s
software engineering work.
TSP recognizes that the best software teams are self-directed.Team members
set project objectives, adapt the process to meet their needs, control the project
schedule, and through measurement and analysis of the metrics collected, work
continually
to improve the team’s approach to software engineering.
SPECIALIZED PROCESS MODELS:
The formal methods model have a set of activities that leads to formal mathematical
specification of computer software. Formal methods enable you to specify ,develop, and
verify a computer-based system by applying a rigorous, mathematical notation. A variation on
this approach, called clean room software engineering is currently applied by some software
development organizations.
When concerns cut across multiple system functions, features, and information, they are
often referred to as crosscutting concerns. Aspectual requirements define those crosscutting
concerns that have an impact across the software architecture.
Aspect-oriented software development (AOSD), often referred to as aspect-oriented
programming (AOP), is a relatively new software engineering paradigm that provides a
process and methodological approach for defining, specifying, designing, and constructing
aspects.
PROCESS TECHNOLOGY(automated software project development process model)