software engineering dkt311 rohani binti s mohamed farook mohamed elshaikh 0175171894 kkf 8a –...

38
Software Engineering DKT311 ROHANI BINTI S MOHAMED FAROOK MOHAMED ELSHAIKH 0175171894 KKF 8A – room 4

Upload: marshall-rich

Post on 20-Jan-2016

218 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Software Engineering DKT311 ROHANI BINTI S MOHAMED FAROOK MOHAMED ELSHAIKH 0175171894 KKF 8A – room 4

Software EngineeringDKT311

ROHANI BINTI S MOHAMED FAROOKMOHAMED ELSHAIKH0175171894KKF 8A – room 4

Page 2: Software Engineering DKT311 ROHANI BINTI S MOHAMED FAROOK MOHAMED ELSHAIKH 0175171894 KKF 8A – room 4

Course overview

Lectures 60% Wednesday 1 – 3 pm at BKQ 6

Lab 40% Thursday 9 – 11 am at MKQ1

As follow: Final exam 50% Practical 50%

lab assignment 30% test 10% Lab test 10%

Page 3: Software Engineering DKT311 ROHANI BINTI S MOHAMED FAROOK MOHAMED ELSHAIKH 0175171894 KKF 8A – room 4

Guide lines

Early study Object-Oriented Software Engineering

Practical software development using UML and JAVA, 2nd edition, (Timothy C. Lethbridge and Robert Laganiere)

Lecture notes provided materials Take notes during the lecture

Assignments For self development Counted lab assignment

Page 4: Software Engineering DKT311 ROHANI BINTI S MOHAMED FAROOK MOHAMED ELSHAIKH 0175171894 KKF 8A – room 4

Course outcomes

to describe software engineering concepts and terms used in its discipline

to analyze a problem based on different software development models, to write specification document based on the standard documentation

to design and develop software prototype based on the specification and verification and validation

to apply software engineering skills to project management

Page 5: Software Engineering DKT311 ROHANI BINTI S MOHAMED FAROOK MOHAMED ELSHAIKH 0175171894 KKF 8A – room 4

Lecture 1.

Software and software engineering Software Engineering definition Difference between computer science

and software engineering Review to Object Orientation Class and objects Instances variables Methods, operations and polymorphism Inheritance

Page 6: Software Engineering DKT311 ROHANI BINTI S MOHAMED FAROOK MOHAMED ELSHAIKH 0175171894 KKF 8A – room 4

Questions you need to answer

What is software? What is software engineering? What is the difference between software

engineering and computer science? What are the costs of software

engineering? What are software engineering methods? What are the attributes of good software? What are the key challenges facing

software engineering?

Page 7: Software Engineering DKT311 ROHANI BINTI S MOHAMED FAROOK MOHAMED ELSHAIKH 0175171894 KKF 8A – room 4

What is software

Computer programs and associated documentation such as requirements, design models and user manuals.

Software products may be developed for a particular customer or may be developed for a general market.

Software products may be Generic - developed to be sold to a range of different

customers e.g. PC software such as Excel or Word. Bespoke (custom) - developed for a single customer

according to their specification. Embedded software – to adopt hardware functionality.

New software can be created by developing new programs, configuring generic software systems or reusing existing software.

Page 8: Software Engineering DKT311 ROHANI BINTI S MOHAMED FAROOK MOHAMED ELSHAIKH 0175171894 KKF 8A – room 4

Software problems

Software crisis Poor software design. Doesn't meet their expectations. Never delivered or late delivered. Over budget. Software bugs.

Software engineering methods To meet expectations. Avoid crisis.

Page 9: Software Engineering DKT311 ROHANI BINTI S MOHAMED FAROOK MOHAMED ELSHAIKH 0175171894 KKF 8A – room 4

Software designing artifacts

Software unlike other engineering products are: Illusive. Low mass production. Un-engineered designs are easy to

collapse. no expiry date.

Page 10: Software Engineering DKT311 ROHANI BINTI S MOHAMED FAROOK MOHAMED ELSHAIKH 0175171894 KKF 8A – room 4

Software engineering

Solve problems Economically systematic High quality Satisfactory Reliable Maintainable Flexible

Page 11: Software Engineering DKT311 ROHANI BINTI S MOHAMED FAROOK MOHAMED ELSHAIKH 0175171894 KKF 8A – room 4

Other definitions

IEEE: (1) the application of systematic, disciplined, quantifiable approach to the development, operation, maintenance of software ;that is, the application of engineering to software. (2) the study of approaches as in (1).

The Canadian Standards Association: the systematic activities involved in the design, implementation and testing of software to optimized its production and support.

Page 12: Software Engineering DKT311 ROHANI BINTI S MOHAMED FAROOK MOHAMED ELSHAIKH 0175171894 KKF 8A – room 4

Software engineering vs. computer science

Computer science is concerned with theory and fundamentals; software engineering is concerned with the practicalities of developing and delivering useful software.

Computer science theories are still insufficient to act as a complete underpinning for software engineering (unlike e.g. physics and electrical engineering).

Page 13: Software Engineering DKT311 ROHANI BINTI S MOHAMED FAROOK MOHAMED ELSHAIKH 0175171894 KKF 8A – room 4

Stakeholders

software USERCUSTOMERS

DEVELPER MANAGMENT

SOFTWARE DEVELOPER

Page 14: Software Engineering DKT311 ROHANI BINTI S MOHAMED FAROOK MOHAMED ELSHAIKH 0175171894 KKF 8A – room 4

Stakeholders

Users Those whom use the

software Customers

Start design (decision) Software developers

Develop. Maintenance. Software engineers Recognized by their high

quality work. Work in teams.

Development manager Companies managers. Always looking for profit

( low design cost & pleasing customers.

useruser

managermanager

customercustomer

developerdeveloper

qualityquality

Page 15: Software Engineering DKT311 ROHANI BINTI S MOHAMED FAROOK MOHAMED ELSHAIKH 0175171894 KKF 8A – room 4

Software quality

Is this a high quality software? Customer:

Solves my problem.

Low cost (money and resources).

User: Easy. Efficient. Get job done.

useruser

managermanager

customercustomer

developerdeveloper

qualityquality

Page 16: Software Engineering DKT311 ROHANI BINTI S MOHAMED FAROOK MOHAMED ELSHAIKH 0175171894 KKF 8A – room 4

Cont.

Developer: Easy to design Maintainable Reusable

Development manager: More selling Satisfactory Low design &

maintaining cost

Developer

Easy to design

Maintainable

Reusable

Page 17: Software Engineering DKT311 ROHANI BINTI S MOHAMED FAROOK MOHAMED ELSHAIKH 0175171894 KKF 8A – room 4

Quality software

Customer User

Developer Manager

Solve my problems Not costed Easy Efficient Get job done

Easy Maintainable Reusable Low design

costMoresell

Satisfactory

Page 18: Software Engineering DKT311 ROHANI BINTI S MOHAMED FAROOK MOHAMED ELSHAIKH 0175171894 KKF 8A – room 4

Cont.

It is very hard to say this is a high quality software, but we may consider the most important five quality attributes:

Usability Efficiency Reliability Maintainability Reusability

Page 19: Software Engineering DKT311 ROHANI BINTI S MOHAMED FAROOK MOHAMED ELSHAIKH 0175171894 KKF 8A – room 4

Cont.

Make your objectives Internal quality

Comments Complexity

Short term Does it meets the immediate needs? Sufficient, efficient for today data?

Long term quality What about maintainability? What about future needs?

Page 20: Software Engineering DKT311 ROHANI BINTI S MOHAMED FAROOK MOHAMED ELSHAIKH 0175171894 KKF 8A – room 4

Software engineering project

Team work Few people for small

projects What about big projects

Three categories: Evolutionary project

Modifying Greenfield project

Developing from scratch

Build from existing components

Uses frameworks New for missed

details

Page 21: Software Engineering DKT311 ROHANI BINTI S MOHAMED FAROOK MOHAMED ELSHAIKH 0175171894 KKF 8A – room 4

Common project activity

Project life cycle: Requirement and specification

Understanding the problem Design

How to implement the requirements Modeling

Software representation

Page 22: Software Engineering DKT311 ROHANI BINTI S MOHAMED FAROOK MOHAMED ELSHAIKH 0175171894 KKF 8A – room 4

Cont.

Programming Translate what you did to high level

programming language (coding) Quality assurance

Meet the quality objectives Reviews and inspections Testing

Deployment Distributing and installing the system

Page 23: Software Engineering DKT311 ROHANI BINTI S MOHAMED FAROOK MOHAMED ELSHAIKH 0175171894 KKF 8A – room 4

Cont.

Managing the software configuration Identifying the components All software engenderers must

participate for their components. Managing the process

Estimate the cost of the system Planning

Page 24: Software Engineering DKT311 ROHANI BINTI S MOHAMED FAROOK MOHAMED ELSHAIKH 0175171894 KKF 8A – room 4

Object Orientation (OO)

In it is very common name OOP Object oriented programming

Abstraction “software less complex” Combines procedural abstraction with

data abstraction? Class and objects Instances variables Methods, operations and polymorphism Inheritance

Page 25: Software Engineering DKT311 ROHANI BINTI S MOHAMED FAROOK MOHAMED ELSHAIKH 0175171894 KKF 8A – room 4
Page 26: Software Engineering DKT311 ROHANI BINTI S MOHAMED FAROOK MOHAMED ELSHAIKH 0175171894 KKF 8A – room 4

Abstraction

Data abstraction Records and

structures Entity description

Procedural abstraction Function and

procedure Action description

OOP is:

The object oriented paradigm is approach to the solution of problems in which all computations are performed in the context of object. The objects are instances of programming constructs, normally called class, which are data abstractions and which contain procedural abstractions that operate on the object.

Page 27: Software Engineering DKT311 ROHANI BINTI S MOHAMED FAROOK MOHAMED ELSHAIKH 0175171894 KKF 8A – room 4

Class & Object

Represents the abstracted entity into: Properties

To describe the current state. (what is your car color?)

Behavior The acts and reacts of the object. (I may change my car color..)

Class is a software module that represents and defines a set of similar objects.

Object is a chunk of structure data in a running software.

Lets look at some examples…

Page 28: Software Engineering DKT311 ROHANI BINTI S MOHAMED FAROOK MOHAMED ELSHAIKH 0175171894 KKF 8A – room 4

Human as a class

Page 29: Software Engineering DKT311 ROHANI BINTI S MOHAMED FAROOK MOHAMED ELSHAIKH 0175171894 KKF 8A – room 4

Accounting system

Page 30: Software Engineering DKT311 ROHANI BINTI S MOHAMED FAROOK MOHAMED ELSHAIKH 0175171894 KKF 8A – room 4

Instances variables

Objects are class’s instance Example:

Student

Name:

Id:

School:

Grade:

Change school.

Change course.

Withdraw.

Mohamed

08998

Computer

B

Name

Attributes

methods

Page 31: Software Engineering DKT311 ROHANI BINTI S MOHAMED FAROOK MOHAMED ELSHAIKH 0175171894 KKF 8A – room 4

Ex.

General motors Boeing 777 Mary smith Board game University course SEG 2100 The game of chess between tom and jane Automobile company Chess Airplane The car with serial number WQH 8062

Page 32: Software Engineering DKT311 ROHANI BINTI S MOHAMED FAROOK MOHAMED ELSHAIKH 0175171894 KKF 8A – room 4

Methods, operations and polymorphism

Method = function, procedure It used to implement the behavior of class

Operation High level procedural abstraction To specify type of behavior

Polymorphism Is a property of object oriented software by

which an abstract operation may be performed in different ways, typically in different classes.

Page 33: Software Engineering DKT311 ROHANI BINTI S MOHAMED FAROOK MOHAMED ELSHAIKH 0175171894 KKF 8A – room 4

Polymorphism

Example: Bank interest

Average daily balance Minimum daily balance

Can you give another example…. Car Student

Page 34: Software Engineering DKT311 ROHANI BINTI S MOHAMED FAROOK MOHAMED ELSHAIKH 0175171894 KKF 8A – room 4

Inheritance

Classes with common attributes To avoid

duplication Super class

contains the common attributes

Account

Saving account

Checking account

Current account

Inheritance is the implicit possession by a subclass of features defined in the super class. Feature include variables and methods.

Page 35: Software Engineering DKT311 ROHANI BINTI S MOHAMED FAROOK MOHAMED ELSHAIKH 0175171894 KKF 8A – room 4

Any question.Thank you…..

Page 36: Software Engineering DKT311 ROHANI BINTI S MOHAMED FAROOK MOHAMED ELSHAIKH 0175171894 KKF 8A – room 4

Questions for this lectures

Define the following terms: Software engineering(IEEE, Canadian

Standards Association)SoftwareThe differences between software and

software engineering?Object, Class, polymorphism, inheritance.Stockholders Software engineering quality

Page 37: Software Engineering DKT311 ROHANI BINTI S MOHAMED FAROOK MOHAMED ELSHAIKH 0175171894 KKF 8A – room 4

Describe the role of each stockholder in a software engineering project?

Draw a class box for each of the following stating the class name, attributes, and methods: Cars Students Server Human Home

Page 38: Software Engineering DKT311 ROHANI BINTI S MOHAMED FAROOK MOHAMED ELSHAIKH 0175171894 KKF 8A – room 4

In example project there are two classes namely (Human, student, lecturer, child), draw a diagram showing the inheritance relationship between these classes.