Lesson-1-Software and Software Engineering PDF
Lesson-1-Software and Software Engineering PDF
3
Characteristics/Nature of Software
4
Characteristics/Nature of Software
5
Characteristics/Nature of Software
Conclusions
Much software has poor design and is getting worse
We have to learn to ‘engineer’ software
6
Software Applications
System Software :
Operating system, drivers, networking software, telecommunications
processors, Compilers.
Application Software:
Microsoft Office, Excel and Outlook, Google Chrome, Mozilla Firefox
and Skype. Games and mobile applications such as "Clash of Clans,"
SoundCloud, Spotify and Uber, are also considered application software.
Other specific examples include Steam, "Minecraft," Adobe Reader and
Photoshop.
Engineering/scientific software:
Computer-aided Design and Computer-aided Manufacturing Software,
Civil Engineering and Architectural Software , Electrical Engineering
software, Geographic Information Systems Software, Simulation
software, Interactive Software.
Embedded Software : 7
key pad control for a microwave oven, fuel control, dashboard displays,
and braking systems, control and monitoring system.
Software Applications (Cont..)
10
Legacy Software
Why must it change?
software must be adapted to meet the needs of new
computing environments or technology.
software must be enhanced to implement new
business requirements.
software must be extended to make it interoperable
with other more modern systems or databases.
software must be re-architected to make it viable
within a network environment.
11
Characteristics of WebApps
Network intensiveness. A WebApp resides on a network and
must serve the needs of a diverse community of clients.
Concurrency. A large number of users may access the
WebApp at one time.
Unpredictable load. The number of users of the WebApp may
vary by orders of magnitude from day to day.
Performance. If a WebApp user must wait too long (for
access, for server-side processing, for client-side formatting
and display), he or she may decide to go elsewhere.
Availability. Although expectation of 100 percent availability
is unreasonable, users of popular WebApps often demand
access on a “24/7/365” basis.
12
Characteristics of WebApps(Cont…)
14
Software Engineering (Cont..)
15
Software Engineering (Cont..)
16
Software Engineering (Cont..)
19
Software Quality
•Usability
• Users can learn it and fast and get their job done easily
•Efficiency
• It doesn't’t waste resources such as CPU time and
memory
•Reliability
• It does what it is required to do without failing
•Maintainability
• It can be easily changed
•Reusability
20
• Its parts can be used in other projects, so reprogramming
is not needed
Software Quality and Stakeholders
21
A Layered Technology
22
Fig: Software engineering layers
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 (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. 23
The Essence of Practice
24
Software Myths
Pressman describes a number of common beliefs or myths
that software managers, customers, and developers believe
falsely.
He describes these myths as ``misleading attitudes that
have caused serious problems.'' We look at these myths to
see why they are false, and why they lead to trouble.
Affect managers, customers (and other non-technical stakeholders)
and practitioners
Are believable because they often have elements of truth,
but …
Invariably lead to bad decisions,
therefore … 25
Insist on reality as you navigate your way through software
engineering
Hooker’s General Principles
27