Unit1 SCE
Unit1 SCE
Unit1 SCE
Software engineering paradigm is refers to the method and steps, which are taken
while design the software. It consists of three parts.
Programming paradigm
Software engineering fulfill the higher rate of change in user requirement and
environment. The user requirement lies on cost, scalability, dynamaic nature of working
environments, quality management.
Operational
Transitional
Maintainance
a) Operational
Operational defines how well the software works in operations. It can be measure
on budget, usability, efficiency, correctness, functionality, dependability, security, safety.
b) Transitional
This aspect is important if the software is moved from one platform to another.
The key parameters that includes portability, Interoperability, Reusability, Adaptability.
c) Maintenance
Maintenance of the software defines the capabilities to maintain itself in the ever
changing environment. It includes modularity, maintainability, flexibility etc.
Software is
(1) instructions (computer programs) that when executed provide desired function and
performance,
(2) data structures that enable the programs to adequately manipulate information, and
(3) documents that describe the operation and use of the programs.
Software Engineering:
A Layered Technology
Processes:
Systematic ways of organizing teams and tasks so that there is a clear, traceable
path from customer requirements to the final product. (e.g.,:Waterfall, Prototyping,
Spiral etc.) Processes help organize and co-ordinate teams, prepare documentation,
reduce bugs, manage risk, increase productivity, etc.
Models:
Well-defined formal or informal languages and techniques for organizing and
communicating arguments and decisions about software. e.g:
– specification languages
– design models (UML)
Models help stake-holders communicate: customers with developers, designers
and developers, developers and testers etc. If they are formal, they also can help
support automation
Tools:
Programs which automate or otherwise support software development tasks:
e.g., – Eclipse etc. Tools increase productivity, quality and can reduce costs.
1.5Spiral Model
An element of risk is always involved in the development of software.
For example, key personnel can resign before the product has been adequately
documented. Too much, or too little, can be invested in testing and quality
assurance. After spending hundreds of thousands of dollars on developing a
major software product, technological breakthroughs can render the entire
product worthless.
An organization may research and develop a database management system, but
before the product can be marketed, a lower-priced, functionally equivalent
package is announced by a competitor.
For obvious reasons, software developers try to minimize such risks wherever
possible. One way of minimizing certain types of risk is to construct a prototype.
The idea of minimizing risk via the use of prototypes and other means is the idea
underlying the spiral life-cycle model. A simplified way of looking at this lifecycle
model is as a waterfall model with each phase preceded by risk analysis.
In full spiral model the radial dimension represents cumulative cost to date, and
the angular dimension represents progress through the spiral.
Each cycle of the spiral corresponds to a phase. A phase begins (in the top left
quadrant) by determining objectives of that phase, alternatives for achieving
those objectives, and constraints imposed on those alternatives. This process
results in a strategy for achieving those objectives.
Attempts are made to mitigate every potential risk, in some cases by building a
prototype.
If certain risks cannot be mitigated, the project may be terminated immediately;
under some circumstances, however, a decision could be made to continue the
project but on a significantly smaller scale.
If all risks are successfully mitigated, the next development step is started
(bottom right quadrant). This quadrant of the spiral model corresponds to the
classical waterfall model. Finally, the results of that phase are evaluated and the
next phase is planned.
Advantages of Spiral model:
High amount of risk analysis hence, avoidance of Risk is enhanced.
Good for large and mission-critical projects.
Strong approval and documentation control.
Additional Functionality can be added at a later date.
Software is produced early in the software life cycle.
Project estimates in terms of schedule, cost etc become more and more realistic
as the project moves forward and loops in spiral get completed.
It is suitable for high risk projects, where business needs may be unstable.
A highly customized product can be developed using this.
Prototyping
When to use: customer defines a set of general objectives.
This model follows an evolutionary and iterative approach.
This model used when requirements are not well understood.
It serves as a mechanism for identifying software requirements.
Feedback is used to refine the prototype.
Steps
Quick plan for prototyping and modeling (Quick design) occur.(interface and
output)
Construction of prototype.
Problems
Once the customer sees the ―working version‖ of the software, they want to stop
all developments.
Implementation compromises to get the software running quickly. (language
choice, user interface, OS choice, inefficient algorithm)
System Modeling
System engineering is a modeling process. Whether the focus is on the world
view or the detailed view, the engineer creates models that
Define the processes that serve the needs of the view under
consideration.
Represent the behavior of the processes and the assumptions on which
the behavior is based.
Explicitly define both exogenous and endogenous input3 to the model.
Represent all linkages (including output) that will enable the engineer to
better understand the view.
To construct a system model, the engineer should consider a number of restraining
factors:
Assumptions
These reduce the number of possible variations, thus enabling a model to
reflect the problem in a reasonable manner
Simplifications
These enable the model to be created in a timely manner
Limitations
These help to bound the maximum and minimum values of the system
Constraints
These guide the manner in which the model is created and the approach
taken when the model is implemented
Preferences
These indicate the preferred solution for all data, functions, and behavior
They are driven by customer requirements
System Simulation
Many computer-based systems interact with the real world in a reactive fashion.
That is, real-world events are monitored by the hardware and software that form
the computer-based system, and based on these events, the system imposes
control on the machines, processes, and even people who cause the events to
occur.
Unfortunately, the developers of reactive systems sometimes struggle to make
them perform properly. Until recently, it has been difficult to predict the
performance, efficiency, and behavior of such systems prior to building them.
If the system fails, significant economic or human loss could occur.
software tools for system modeling and simulation are being used to help to
eliminate surprises when reactive, computer-based systems are built. These
tools are applied during the system engineering process, while the role of
hardware and software, databases and people is being specified.
Modeling and simulation tools enable a system engineer to "test drive" a
specification of the system.
Reference Books: