Presentation is loading. Please wait.

Presentation is loading. Please wait.

CSEB233: Fundamentals of Software Engineering Introduction to Software & Software Engineering.

Similar presentations


Presentation on theme: "CSEB233: Fundamentals of Software Engineering Introduction to Software & Software Engineering."— Presentation transcript:

1

2 CSEB233: Fundamentals of Software Engineering Introduction to Software & Software Engineering

3 Lesson Objectives  Define ‘Software’  Discuss issues related to Software  Define ‘Software Engineering’ (SE)  Describe Polya’s Four Essence of SE Practices  Explain Hooker’s Seven SE Principles  Discuss several myths of SE

4 Software & Software Engineering What is Software?

5  Software is developed or engineered, it is not manufactured in the classical sense  Software does not "wear out"  Although the industry is moving toward component-based construction, most software continues to be custom-built

6 Wear vs. Deterioration

7 Software Applications  System software  Application software  Engineering/scientific software  Embedded software  Product-line software  WebApps (Web applications)  AI software

8 Software — New Categories  Open world computing  The rapid growth of wireless networking leads to true pervasive, distributed computing  The challenge is to develop software that can communicate across mobile devices  Netsourcing  WWW becoming a computing engine as well as content provider  Sophisticated but simple applications for worldwide end-user are needed  Open source  “free” source code open to the computing community  A trend that results in distribution of source code where many people can contribute  a blessing, but also a potential curse!  The challenge is to build self descriptive code and to ensure that changes are traceable.

9 Legacy Software  Legacy software systems … were developed decades ago, and have been continually modified to meet changes in business requirements and computing platforms, costly to maintain and risky to evolve.

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 - I  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

12 Characteristics of WebApps - II  Availability  Although expectation of 100 percent availability is unreasonable, users of popular WebApps often demand access on a “24/7/365” basis.  Data driven  The primary function of many WebApps is to use hypermedia to present text, graphics, audio, and video content to the end-user.  Content sensitive  The quality and aesthetic nature of content remains an important determinant of the quality of a WebApp.  Continuous evolution  Unlike conventional application software that evolves over a series of planned, chronologically-spaced releases, Web applications evolve continuously.

13 Characteristics of WebApps - III  Immediacy  Although immediacy—the compelling need to get software to market quickly—is a characteristic of many application domains, WebApps often exhibit a time to market that can be a matter of a few days or weeks  Security  Because WebApps are available via network access, it is difficult, if not impossible, to limit the population of end-users who may access the application  Aesthetics  An undeniable part of the appeal of a WebApp is its look and feel

14 Software & Software Engineering What is Software Engineering?

15 Software Engineering  Some realities:  a concerted effort should be made to understand the problem before a software solution is developed  design becomes a pivotal activity  software should exhibit high quality  software should be maintainable  The conclusion?  Software should be ‘engineered’

16 Software Engineering The Seminal Definition  Software engineering is  The establishment and use of sound engineering principles in order to obtain economically, software that is reliable and works efficiently on real machines

17 Software Engineering The IEEE Definition  Software Engineering  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 described above

18 A Layered Technology Software Engineering a “quality” focus process model methods tools

19 A Process Framework  Framework activities  Umbrella Activities

20 Framework Activities  Communication  Planning  Modeling  Analysis of requirements  Design  Construction  Code generation  Testing  Deployment

21 Umbrella Activities  Software project management  Formal technical reviews  Software quality assurance  Software configuration management  Work product preparation and production  Reusability management  Measurement  Risk management

22 Adapting a Process Model  the overall flow of activities, actions, and tasks and the interdependencies among them  the degree to which actions and tasks are defined within each framework activity  the degree to which work products are identified and required  the manner which quality assurance activities are applied  the manner in which project tracking and control activities are applied

23 Adapting a Process Model  the overall degree of detail and rigor with which the process is described  the degree to which the customer and other stakeholders are involved with the project  the level of autonomy given to the software team  the degree to which team organization and roles are prescribed

24 Software & Software Engineering Four Essence of SE Practices

25 The Essence of SE Practices  Polya suggests:  Understand the problem ♦ communication and analysis  Plan a solution ♦ modeling and software design  Carry out the plan ♦ code generation  Examine the result for accuracy ♦ testing and quality assurance

26 The Essence of SE Practices 1. Understand the Problem  Who has a stake in the solution to the problem?  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?

27 The Essence of SE Practices 2. Plan the Solution  Have you seen similar problems before?  Are there patterns that are recognizable in a potential solution?  Is there existing software that implements the data, functions, and features that are required?  Has a similar problem been solved?  If so, are elements of the solution reusable?  Can sub-problems be defined?  If so, are solutions readily apparent for the subproblems?  Can you represent a solution in a manner that leads to effective implementation?  Can a design model be created?

28 The Essence of SE Practices 3. Carry Out the Plan  Does the solution conform to the plan?  Is source code traceable to the design model?  Is each component part of the solution provably correct?  Has the design and code been reviewed, or better, have correctness proofs been applied to algorithm?

29 The Essence of SE Practices 4. Examine the Result  Is it possible to test each component part of the solution?  Has a reasonable testing strategy been implemented?  Does the solution produce results that conform to the data, functions, and features that are required?  Has the software been validated against all stakeholder requirements?

30 Software & Software Engineering Seven General Principles of SE

31 Hooker’s General Principles  Provide value to users  KIS (Keep it simple!)  Maintain the Vision  What You Produce, Others Will Consume  Be Open to the Future  Plan Ahead for Reuse  Think!

32 Hooker’s General Principles 1. Provide value to users  This is the reason why it all exists in the first place  All decisions should be made with this in mind

33 Hooker’s General Principles 2. Keep It Simple (KISS)  There are many factors to consider in any design effort  Thus, all software design should be as simple as possible but not simpler to ease understanding and maintenance of the software

34 Hooker’s General Principles 3. Maintain the Vision  A clear vision is essential to the success of a software project  Compromising the architectural vision of a software system weakens and break even well-designed systems

35 Hooker’s General Principles 4. What You Produce, Others Will Consume  Consume  use, maintain, document or depend on  Always specify, design, and implement knowing others will have to understand what you are doing

36 Hooker’s General Principles 5. Be Open to the Future  True “industrial-strength” software must endure long lifetime  Hence, design the software to:  solve the general problem, not just the specific one,  be ready to adapt to changes (in hardware, computing platform etc.), and  be reused

37 Hooker’s General Principles 6. Plan Ahead for Reuse  Reuse reduces the cost and increases the value of the reused components and the systems into which they are incorporated

38 Hooker’s General Principles 7. Think  When you think about something (placing clear, complete thought before action), you are more likely to do it right (more importantly, the first time).

39 Software & Software Engineering Software Myths

40  Software myths – erroneous beliefs about software and the process that is used to build it  Misleading attitudes that have caused serious problems for managers and practitioners  Classifications of software myths:  Management  Customer  Practitioner

41 Software Myths Management  Myth:  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?  Of we get behind schedule, we can add more programmers and catch up.  If I decide to outsource the software project to a third party, I can just relax and let that firm build it.

42 Software Myths Customer  Myth:  A general statement of objectives I sufficient to begin writing program – we can fill the details later.  Software requirements continuously change, but change can be easily accommodated because software is flexible.

43 Software Myths Practitioner  Myth:  Once we write the program and get it work, our job is done.  Until I get the program running, I have no way of assessing its quality  The only deliverable work product of a successful project is the working program  Software engineering will make us create voluminous and unnecessary documentation and will invariable slow us down.

44 How It all Starts  Every software project is precipitated by some business need  the need to correct a defect in an existing application;  the need to adapt a ‘legacy system’ to a changing business environment;  the need to extend the functions and features of an existing application, or  the need to create a new product, service, or system.

45 Summary  Definitions of software and software engineering  Software deteriorates but never wear out  Several software application domain – system software, engineering/scientific software, AI software, embedded software, etc.  The Polya’s Four Essence of SE Practices  Understand the problem; Plan a solution; Execute the plan; Examine the result for accuracy

46 Summary  Seven SE Principles  The Reason It All Exists; KISS; Maintain the Vision; What You Produce, Others Will Consume; Be Open to the Future; Plan Ahead for Reuse; Think!  Software myths have caused serious problems for the software industry

47 THE END Copyright © 2014 College of Information Technology


Download ppt "CSEB233: Fundamentals of Software Engineering Introduction to Software & Software Engineering."

Similar presentations


Ads by Google