Date post: | 25-Dec-2015 |
Category: |
Documents |
Upload: | cornelia-neal |
View: | 215 times |
Download: | 0 times |
1
SYS366
Week 1 - Lecture 1Introduction to Systems
2
Today What is Software Development Overview of Software Development What is a system? Systems Development Lifecycle
(SDLC) The Systems Stream Sys366 overview and requirements
3
What is Software Development? Software Development implies developing
some software – but it does not involve simply coding programs
Software is developed to turn manual processes into automated processes or to improve/enhance existing automated processes.
4
What does this have to do with Systems? Software Development entails understanding
the problem to be solved, understanding how a business operates and understanding that the solution to be developed will be of value to the business
The Systems stream of courses provide the knowledge of the steps that need to be followed to successfully create a software solution from the inception of the idea to a working, fully operational system. This collection of steps is called the Systems Development Life Cycle.
5
What is a system? A combination of hardware and
developed software that create the software solution that meets the needs of a business.
A collection of inter-related components that collect, process, store and provide as output the information needed to complete business tasks.
a shared understanding of how things work.
6
What is a system? Characteristics of a system*
It exists in an environment It is separated from its environment by some
kind of boundary It has inputs and outputs which come from, or
are sent to the environment It has interfaces (allows communication
between two systems) It can have sub-systems (which are also
systems) It has a control mechanism*Object-Oriented Systems Analysis & Design using UML, 1999 pages 5-6
7
What is a system?
What the system does
System Boundary
Inputs Outputs
Control
How the system is controlled
FeedbackFeed-forward
*Object-Oriented Systems Analysis & Design using UML, 1999 pages 5-6
8
History of Software Development
1970s/1980s: Mainframe Centralized processing The Mainframe Punch card technology
Applications Utility bills Voting Machines
Modern Application Chip development
9
History of Software Development
1980s/1990s: Mid-Range Centralized/Distributed processing
1990s: Client/Server Data Warehousing Distributed processing
10
Need for Software Development:
Environments are rapidly changing New technologies are frequently
introduced Companies merge and need to
combine their systems Government legislation
11
Software Development Typical Solutions
Developed in-house Turnkey Off-the shelf Contracted out
12
Software Development Approaches Structured
Worked well for centralized processing applications
Object Oriented Works for GUI and web solutions
13
Software Development Approaches Structured
Based on the functions that a system needs to perform
Development is rigid: does not allow for changes easily without significant impact to a project deadline
Components do not tend to be reusable: solution developed is for a specific set of functions (which usually aren’t shared)
Uses Data Flow Diagrams (the flow of data through a system) and Entity Relationship Diagrams (the data the system is going to use)
14
Software Development Methodologies Object Oriented
Based on the interaction that happens between ‘objects’
Does still consider the functions the system needs to perform however
Allows for reusability or sharing of code (a dialogue box construct is the same across applications)
Reduces the development time for an application
Focuses on object technology such as multimedia systems
15
Object-oriented Development
OO is fundamentally different from traditional software development Object-oriented approach
Real world objects are modeled into corresponding programming objects.
Objects have state, behaviour and identity.
16
Systems Development Life Cycle (SDLC)
Software Development Projects are developed according to a definite methodology called the SDLC
• organizes the activities of a project• Interactive and Incremental• followed by anyone involved in software development
17
Systems Development Life Cycle (SDLC) Project Planning Phase Analysis Phase: understanding business
needs Design Phase: conceptualizing
computer-system solutions Implementation Phase: coding, testing
and installation Support Phase
18
SDLC Aids for Software Development
Methodologies Comprehensive guidelines to follow
for completing every SDLC activity Collection of techniques Examples: Structured, OO
19
SDLC Aids for Software Development
Techniques
Collection of guidelines that help the Developer complete a system development activity or task
Step-by-step instructions General advice
20
SDLC Aids for Software Development
Models Representation of an important
aspect of the real world Diagrams and charts Project planning aids Rational Rose
21
Where will I learn these methodologies, techniques, and models? The Systems Stream
22
Object-oriented Systems Development Life Cycle Analysis:
Systems requirements are determined, defined and documented
Looks at functions (at a high level) and the data that will be used
Defines ‘what the system is to do’ Deliverables:
Activity Tables (Sys366) Use Case Diagrams (Sys 366) Scenarios (Sys466) Initial User Interfaces (Sys366) Class Diagrams (with attributes only) (Sys466)
23
Object-oriented System Development Life Cycle Design:
Architecture (what platform will the solution be developed on)
Integrates the user interfaces with the data more clearly
Defines ‘how the system will do it’ Deliverables:
Sequence diagrams (Sys466) Deployment diagrams Class diagrams (with operations) (Sys466) More detailed user interfaces (Sys466) Output report designs (Sys466)
24
Object-oriented Systems Development Life Cycle Code and Test: (PRJ666)
Code and install system Define and create databases Defines ‘the system’ Deliverables:
Program code and documentation Tested, working system
25
Object-oriented Systems Development Life Cycle Implementation: (PRJ666))
The working system is delivered Deliverables:
Hardware Databases Data Converted Software installed Support processes implemented
This phase actually happens in varying levels of detail at the end of each cycle
26
Why the move to Object-oriented Methodology?
Software Development is too expensive
Poor Quality Late Delivery Poor Productivity Too much person-power needed Fragile systems Legacy Systems User Interfaces not state of the art
27
Why the move to Object-oriented Methodology?
Software Developers are being asked to
Develop more sophisticated systems Tackle more complex systems Produce more reliable and malleable
systems Shorten the delivery cycle Reduce costs
28
Software Development Some more common causes for Failure:
Deadlines that cannot be met Budgets that have been exceeded Solutions that don’t work Systems too complex to maintain Customer’s requirements not fully
understood or captured correctly Customers continually change their
requirements Customers are not committed to the project
29
How does the Object-oriented SDLC help to overcome these problems in Software Development?
The system under development is refined and transformed through analysis, design, code and test phases – details are added in successive iterations (changes and improvements are introduced as needed) and incremental releases of software modules are delivered.
System design – developing information systems using UML by Leszek A. Maciaszek (page 5, 2001)
30
Iterative Nature of the Systems Development Life Cycle
31
SDLC Variations
Developers encounter many variations of SDLC in practice. Based on:
Phases Iteration Emphasis on people Speed of development
BUT you have to understand the basic methodology before you can vary it
32
What is expected of me in SYS366?
Do we need to know all the abbreviations? Not all, but many apply to the course content directly, e.g. OOA, OOD,
UML.You need to know them all if you want a job in this field. Does this course need a lot of memorization or does it need a lot of
understanding (Logic)? Mostly understanding. Logic, yes, both inductive and deductive.
Curiosity and Creativity are also very important. The Systems courses engage the whole brain and person more than almost any other course in the curriculum.
What is the overall idea or main point does a student need to focus on?
What does the customer really need to run the business?Document those needs so both the customer and the business/computer system professionals clearly understand what the system will do to satisfy those needs.
33
What is expected of me in SYS366?
Does this course need a lot of memorization or does it need a lot of understanding (Logic)?
Mostly understanding. Logic, yes, both inductive and deductive. Curiosity and Creativity are also very important. The Systems courses engage the whole brain and person more than almost any other course in the curriculum.
What is the overall idea or main point does a student need to focus on?
What does the customer really need to run the business?Document those needs so both the customer and the business/computer system professionals clearly understand what the system will do to satisfy those needs.
34
What is expected of me in SYS366?
What is the overall idea or main point a student needs to focus on?
What does the customer really need to run the business?
Document those needs so both the customer and the business/computer system professionals clearly understand what the system will do to satisfy those needs.
35
What is expected of me in SYS366?
see the course home page cs/~sys366for details
What do students really need to know in this course? Everything I talk about in class is important to the course and/or to being a computing systems professional. Generally, I
do not distinguish between the two. Neither should you.
Do they need to know all the abbreviations? Not all, but many apply to the course content directly, e.g. OOA, OOD, UML.
You need to know them all if you want a job in this field.
You taught about the operations of a company, but I do not quite understand what the concept behind it is.
Company operations: doing the work of the company, i.e. delivering the products and/or services of the company to the customers. e.g. selling cars, shipping parts orders, fixing cars, bookkeeping and administration.
In this course, does it need a lot of memorization or does it need a lot of undestanding (Logic).
Mostly understanding. Logic, yes, both inductive and deductive. Curiosity and Creativity are also very important. The Systems courses engage the whole brain and person more than almost any other course in the curriculum.
What is the overall idea or main point does a student need to focus on?
What does the customer really need to run the business?Document those needs so both the customer and the business/computer system professionals clearly understand what the system will do to satisfy those needs.