• Nu S-Au Găsit Rezultate

Object-Oriented Analysis and

N/A
N/A
Protected

Academic year: 2022

Share "Object-Oriented Analysis and "

Copied!
33
0
0

Text complet

(1)

Course 2 – October, 20, 2014 Adrian Iftene [email protected]

(2)

Software Engineering Books

GOF, GRASP, Swebok

Swebok

Software configuration management

Software engineering management

Software engineering process

Software engineering tools and methods

Myths

(3)

GOF (Gang-Of-Four) -

Design Patterns: Elements of Reusable Object-Oriented Software,

Erich Gamma, Richard Helm, Ralph Johnson, John Vissides

GRASP -

Applying UML and

Patterns – An Introduction to

Object-Oriented Analysis and

Design and Iterative

(4)

Software Engineering Body of Knowledge

Book’s authors Alain

Abran, James W. Moore, 2004

(5)
(6)

The book is a Guide to the Software Engineering Body of Knowledge

In the book are defined 10 knowledge areas (KAs) in SE

Software requirements

Software design

Software construction

Software testing

Software maintenance

Software configuration management

Software engineering management

Software engineering process

Software engineering tools and methods

Software quality

(7)

SCM - the task of tracking and controlling changes in the software

revision control and

the establishment of baselines

Q: "Somebody did something, how can one reproduce it?―

A: comparing different results and of analyzing their differences

(8)

SCM is a supporting software life cycle process (IEEE12207.0-96) which benefits project

management, development and maintenance activities, assurance activities, and the

customers and users of the end product

The concepts of configuration management apply to all items to be controlled (both

hardware and software)

SCM is closely related to the software quality assurance (SQA) activity

(9)

Management and planning of the SCM process, software configuration identification, software configuration control, software configuration

status accounting, software configuration auditing, and software release management and delivery

(10)

RC also known as version control, source control or software configuration management (SCM) is the management of changes to documents,

programs, and other information stored as computer files

Changes are usually identified by a number or letter code, termed the "revision number",

"revision level", or simply "revision―

(11)

Each revision is associated with a timestamp and the person making the change

For example, an initial set of files is "revision 1".

When the first change is made, the resulting set is "revision 2", and so on

Revisions can be compared, restored, and with some types of files, merged

(12)

Stand-alone applications: Microsoft Word,

OpenOffice.org Writer, KWord, Pages, Microsoft Excel, OpenOffice.org Calc, KSpread, Numbers

Content management systems: Drupal, Joomla, WordPress

In wiki software packages such as MediaWiki, DokuWiki, TWiki (offers the ability to revert a page to a previous revision. The aim is to

correct mistakes, and defend public wikis against vandalism and spam)

(13)

Branch - from that time forward, two copies of those files may develop at different speeds or in different ways independently

Change/patch - represents a specific

modification to a document under version control

Change list - the set of changes made in a single commit

Checkout - creates a local working copy

(14)

Commit (checkin) - occurs when writing or merging a copy of the changes made to the working copy into the repository

Conflict - when different parties make changes to the same document, and the system is unable to reconcile the changes

Merge - two sets of changes are applied to a file or set of files

(15)

Tag - refers to an important snapshot in time, consistent across many files. Can be a user-friendly, meaningful

name or revision number

Trunk - The unique line of development that is not a branch

Update - merges changes from repository into the local working copy

Working copy - is the local copy of files from a repository

(16)

Server: ubuntu, apache2, SVN (http://subversion.apache.org/)

https://students.info.uaic.ro/infoiasi/svn/

Client: Windows, TortoiseSVN

(http://tortoisesvn.tigris.org/), Plug-in Eclipse

(http://subclipse.tigris.org/servlets/ProjectPr ocess?pageID=p4wYuA)

(17)

https://students.info.uaic.ro/infoiasi/svn/

(18)
(19)
(20)
(21)

Compare with last from repository

Differences

Revisions History

(22)

The application of management activities —planning, coordinating, measuring,

monitoring, controlling, and reporting—

to ensure that the development and maintenance of software is systematic,

disciplined, and quantified (IEEE610.12-90)

(23)

The perception of clients is such that there is often a lack of appreciation for the complexity inherent in software engineering

It is almost inevitable to generate the need for new or changed client requirements

Software is built in an iterative process rather than a sequence of closed tasks

Software engineering necessarily incorporates aspects of creativity and discipline—maintaining a balance between the two is often difficult

The degree of novelty and complexity of software is often extremely high

There is a rapid rate of change in the underlying

(24)
(25)

Can be examined on two levels

The first level encompasses the technical and managerial activities within the software life cycle processes

The second is the meta-level, which is

concerned with the definition, implementation, assessment, measurement, management,

change, and improvement of the software life cycle processes themselves

(26)
(27)

Tools that are intended to assist the

software life cycle processes, and to allow repetitive, well-defined actions to be

automated, reducing the cognitive load

They are intended to make software engineering more systematic

Methods impose structure on the software engineering activity with the goal of making the activity systematic and successful

Methods provide a notation and vocabulary, procedures for performing identifiable

(28)

Computer engineering

Computer science

Management

Mathematics

Quality management

Software ergonomics (Cognitive ergonomics)

Systems engineering

(29)

Computing Curricula 2001 project (CC2001) states that ―computer engineering embodies the science and technology of design,

construction, implementation and maintenance of software and

hardware components of modern computing systems and computer- controlled equipment.‖

KAs for computer engineering:

Algorithms and Complexity

Computer Architecture and Organization

Computer Systems Engineering

Circuits and Systems

Digital Logic

Discrete Structures

Digital Signal Processing

Distributed Systems

Information Management

Intelligent Systems

Computer Networks

Operating Systems

Programming Fundamentals

Probability and Statistics

Social and Professional Issues

Software Engineering

(30)

ISO Technical Committee 159 on Ergonomics as follows:

―Ergonomics or (human factors) is the scientific discipline

concerned with the understanding of the interactions among human and other elements of a system, and the profession that applies theory, principles, data and methods to design in order to optimize human well-being and overall system performance.‖

KAs:

• Cognition

• Machine Learning and Grammar Induction

• Formal Methods in Cognitive Science:

Language

• Formal Methods in Cognitive Science:

Reasoning

• Formal Methods in Cognitive Science

• Lexical Processing

• Computational Language Acquisition

• Human-Machine Fit and Adaptation

• Human Characteristics

• Computer System and Interface Architecture

• Dialogue Architecture

• Development Process

(31)

Clients

A general description of the objectives is sufficient to begin writing program

Requirements are constantly changing, but the software is flexible and can easy adapts

Developers

Once the program is written and it is functional, our role has ended

Until the program doesn’t work, we can not assess the quality

The only good product is the functional program

(32)

Swebok Home: http://www.swebok.org/

Revision Control:

http://en.wikipedia.org/wiki/Revision_Control

SCM:

http://en.wikipedia.org/wiki/Software_configuration_ma nagement

(33)

Swebok Book: http://www.math.unipd.it/~tullio/IS- 1/2007/Approfondimenti/SWEBOK.pdf

Larman, Craig (2005). Applying UML and Patterns – An Introduction to Object-Oriented Analysis and Design and Iterative Development (3rd ed.). New Jersey: Prentice Hall. ISBN 0-13-148906-2:

http://www.cs.bgu.ac.il/~oosd051/uploads/stuff/ApplyingUMLandP atterns.pdf, http://authors.phptr.com/larman/uml_ooad/index.html

Erich Gamma, Richard Helm, Ralph Johnson, John Vissides: Design Patterns, Elements of Reusable Object-Oriented Software, Addisson Wesley, 1998

Referințe

DOCUMENTE SIMILARE

 cond gardă este o expresie booleană care se evaluează la fiecare apariție a evenimentului specificat; acțiunea se execută doar în cazul în care rezultatul evaluării

This philosophy, called user-centered design, incorporates user concerns and advocacy from the beginning of the design process and dictates.. the needs of the user should be foremost

developed and evolved over time” (GOF - Gang-Of- Four (because of the four authors who wrote it), Design Patterns: Elements of Reusable Object- Oriented Software)..  In

model driven agile development, patterns of enterprise application architecture, test-driven development, refactoring: code architecture..  Object oriented design classes:

 O clasă care face multe lucruri care nu sunt relaționate sau face prea multe lucruri are o coeziune mică (slabă)..  Sunt principii vechi în

developed and evolved over time” (GOF - Gang-Of- Four (because of the four authors who wrote it), Design Patterns: Elements of Reusable Object- Oriented Software).  In

 Prefer small, cohesive interfaces - Interface is the interface type + All public members of a class.  Divide "fat" interfaces into

 Erich Gamma, Richard Helm, Ralph Johnson, John Vissides: Design Patterns, Elements of Reusable Object-Oriented Software, Addisson Wesley, 1998.