Presentation is loading. Please wait.

Presentation is loading. Please wait.

Software Engineering EE323 Y.F. Fung Office: CF605 Consultation hours: Wednesday 6pm-7:30pm.

Similar presentations


Presentation on theme: "Software Engineering EE323 Y.F. Fung Office: CF605 Consultation hours: Wednesday 6pm-7:30pm."— Presentation transcript:

1 Software Engineering EE323 Y.F. Fung (eeyffung@polyu.edu.hk) Office: CF605 Consultation hours: Wednesday 6pm-7:30pm

2 Objectives To learn what is software engineering and why software engineering is important in modern engineering

3 Learning outcomes Understand what is software engineering Understand basic tools used for software development Understand the principles of the cost estimation based on a mathematical model Understand basic techniques for optimizing project schedule

4 Contents Intrdouction - concepts of well engineered software; software life-cycle; reliability and human factors in software engineering Software specification – requirements definition and specification, requirements validation and prototyping Software design techniques – object-oriented design; function- oriented design and user interface design Programming practice – programming style; error handling; data abstraction; software portability and reuse Software validation – top-down and bottom-up testing; black box and white box testing; program debugging; program inspections Software management – software management structures; project planning and scheduling; costing estimation; software maintenance and documentation CASE – Computer Aided Software Engineering Rapid application development tools – case studies

5 References S.R. Schach, “Object-oriented and classical software engineering”, McGraw- Hill (Global edition) R.S. Pressman, “Software engineering: A practitioner’s approach”, McGraw-Hill I. Sommerville, “Software engineering”, Addison Wesley –All the latest edition

6 Assessment methods 60% - Written examination 40% - continuous assessment –Quiz (15%) –Mini-project (25%) (group 2-3 students per group) NO Laboratory session!!!!

7 Quick survey If you have a choice to choose between a hardware project and a software project, which one will you choose? –Why? Do you think writing a “program” (software) is easier than implementing a circuit?

8 What is software engineering? Software – computer instructions or data (ie a program). Anything that can be stored electronically is software Engineering – is the discipline and profession of applying scientific knowledge and utilizing natural laws and physical resources in order to design and implement materials, structures, machines, devices, systems, and processes that realize a desired objective and meet specified criteria.

9 What is software engineering Software engineering is about the application of scientific knowledge for the development of software, i.e treat writing program seriously. Software engineering techniques are important if you want to develop a very complicated program if your software is only a few lines, or a few hundred lines then software engineering techniques may not be relevant!!!!!

10 Software Engineering In engineering, it is the same –If you want to design a simple device, may be you can just pick up some components and put them together without going through a serious design process. –But if you are designing a tablet computer then you need to have a proper design before building the hardware!

11 What is software engineering The scope of software engineering is very broad. It includes mathematics, computer science, economics, management. Software engineering is NOT programming !!!!! There are many stages involved in the software development process and programming is only a part of it. Some studies show that programming is only 1/3 of the whole development process.

12 Hardware engineering VS Software Engineering Hardware –Specifications of the hardware system –Paper design –Simulation –Build the system –Test the circuit according to the specifications –Deliver to user if no hardware fault Software –Analyze system requirements –Design the program –Programming –Test the program and modify until program meets specification –Deliver to user

13 Why software engineering is important In software development, there are usually two parties – Users & Software Developer Software engineering is important because it involves MONEY !!!!! Software can make a lot of money –Microsoft –Video games –Apps for Iphone or Andriod

14 Angry Birds has now sold more than 6.5 million (0.99 per download = 6.4 million USD!!!!)

15 Software engineering is important If a developer can write “good” software then he/she can make “good” money But on the other hand, if a developer cannot deliver the software for a client then there will be penalty (loose money) From user’s point of view, we want “bugs” free software, deliver on time, as well as low-cost Using proper software engineering techniques will help you develop better software

16 Software engineering is important The Developer’s point of view In cases, when a developer is writing a software for a client then you (as a developer needs to consider) –How much to charge the client? –How much time do you need? –What does the user want? –What programming technique should be used? –How many programmers do you need? –What is the maintenance period?

17 Software Engineering is important From user’s point of view You want to understand the document (contract) submitted by the developer You do not want to be over-charged You want the software to work according to your specifications!


Download ppt "Software Engineering EE323 Y.F. Fung Office: CF605 Consultation hours: Wednesday 6pm-7:30pm."

Similar presentations


Ads by Google