Introduction - Romi Satria Wahono

advertisement
Systems Analysis
and Design
Romi Satria Wahono
romi@romisatriawahono.net
http://romisatriawahono.net/sad
WA/SMS: +6281586220090
1
Romi Satria Wahono
•
•
•
•
•
•
•
•
SD Sompok Semarang (1987)
SMPN 8 Semarang (1990)
SMA Taruna Nusantara Magelang (1993)
B.Eng, M.Eng and Ph.D in Software Engineering from
Saitama University Japan (1994-2004)
Universiti Teknikal Malaysia Melaka (2014)
Research Interests: Software Engineering,
Intelligent Systems
Founder dan Koordinator IlmuKomputer.Com
Peneliti LIPI (2004-2007)
Founder dan CEO PT Brainmatics Cipta Informatika
2
Learning Design
Pretest dan Posttest untuk
Mengukur Kompetensi Kognifif
Penugasan berbasis SelfContained Project dan
Literatur Review
Penyajian Materi dengan
Model Minimalism berbasis
Konsep Amati-Tiru-Modifikasi
Latihan Secara Iteratif untuk
Meningkatkan Kompetensi Kognitif
dan Psikomotorik
3
Textbook
4
References
1. Alan Dennis et al, Systems Analysis and Design with
UML 4th Edition, John Wiley and Sons, 2013
2. Kenneth E. Kendall and Julie E Kendall, Systems Analysis
and Design 8th Edition, Prentice Hall, 2010
3. Hassan Gomaa, Software Modeling and Design: UML,
Use Cases, Patterns, and Software Architectures,
Cambridge University Press, 2011
4. Gary B. Shelly and Harry J. Rosenblatt, Systems Analysis
and Design 9th Edition, Course Technology, 2011
5. Howard Podeswa, UML for the IT Business Analyst 2nd
Edition, Course Technology, 2009
6. Jeffrey A. Hoffer et al, Modern Systems Analysis and
Design 6th Edition, Prentice Hall, 2010
5
Pre-Test
1.
Sebutkan tahapan pengembangan sistem atau system development
life cycle (SDLC)!
2.
Sebutkan beberapa metodologi pengembangan sistem yang anda
ketahui!
3.
Gambarkan requirement di bawah dengan use case diagram!
SISTEM ELIBRARY
• Sistem elibrary memungkinkan pengguna untuk melakukan registrasi
dan login
• Setelah menjadi member, pengguna dapat memodifikasi profile, serta
mencari dan mendownload koleksi buku di sistem elibrary
• Admin sistem elibrary melakukan approval terhadap registrasi dan
menampilkan laporan aktifitas pengguna secara individual maupun total
4.
Gambarkan activity diagram, sequence diagram dan class diagram
dari requirement di atas!
5.
Hitung dengan metode yang anda ketahui, berapa orang dan waktu
(bulan) yang dibutuhkan untuk mengembangkan sistem di atas!
6
Course Outline
1. Introduction
2. Project Planning
3. System Analysis
4. System Design
5. System Implementation
7
1. Introduction
1.1 Why We Learn Systems Analysis and Design
1.2 Systems Analyst and Its Roles
1.3 Systems Development Life Cycle
1.4 Systems Development Methodology
1.5 Methodology Selection Strategy
8
1.1 Why We Learn Systems Analysis
and Design
9
Systems Development Projects Fail
• More than half of all systems development
projects Fail
(42% - Standish Group, 53% - General Accounting Office)
• Canceled before completion
• System is never used once finished
• Doesn't provide the expected benefits
• Most of the ones that don't fail:
• Are delivered late
• Are over budget
• Don't provide the features promised
10
Recent Significant IT Failures
Company
Year
Outcome
Hudson Bay (Canada)
2005
Inventory system problems lead to $33.3
million loss
UK Inland Revenue
2004/5
$3.45 billion tax-credit overpayment caused
by software errors
Avis Europe PLC (UK)
2004
Enterprise resource planning (ERP) system
cancelled after $54.5 million spent
Ford Motor Co.
2004
Purchasing system abandoned after
deployment costing approximately $400 M
Hewlett-Packard Co.
2004
ERP system problems contribute to $160
million loss
AT&T Wireless
2004
Customer relations management (CRM)
system upgrade problems lead to $100M loss
11
Keunikan dari Software
Karakteristik
Kompleksitas
Software
Tingkat kompleksitas
dari produk software
tinggi, dengan
kemungkinan perubahan
parameter dan fungsi
yang sangat beragam
Hardware
Tingkat kompleksitas
produk lain rendah,
dengan kemungkinan
perubahan parameter
dan fungsi tidak
beragam
Visibilitas
Produk
Produk tidak terlihat
dengan kasat mata,
termasuk bila ada cacat
(defect) dari produk
Produk terlihat dengan
kasat mata, termasuk
bila ada cacat (defect)
dari produk
12
Software Errors, Faults, Failures
13
Analisis Kasus
• Suatu perusahaan PT ABC memproduksi software yang
akan ditanam ke dalam suatu device
• Salah satu fungsi yang terdapat pada software adalah
akan mematikan device secara otomatis apabila suhu
ruangan lebih besar daripada 30o celcius
• Programmer salah menuliskan logika menjadi:
…
if (suhu > 3) shutdownDevice();
…
• Error ini tidak pernah menyebabkan failure pada
software, dan perusahaan PT ABC sampai saat ini
terkenal sebagai perusahaan yang memproduksi
software tanpa bug
• Jelaskan mengapa bisa terjadi demikian!
14
Warranty Lawsuits
• Mortenson vs. Timeberline Software (TS) (≈1993)
• Mortenson menggunakan software yang diproduksi TS untuk
membuka tender pembangunan rumah sakit
• Software memiliki bug sehingga memenangkan perusahaan yang
mengajukan proposal paling mahal (kerugian 2 miliar USD)
• TS tahu tentang bug itu, tapi tidak mengirimkan update ke
Mortenson
• Pengadilan di Amerika Serikat memenangkan perusahaan TS
• Uniform Computer Information Transaction Act
(UCITA) allows software manufacturers to:
• disclaim all liability for defects
• prevent the transfer of software from person to person
15
Disclaimer of Warranties
DISCLAIMER OF WARRANTIES. TO THE MAXIMUM EXTENT
PERMITTED BY APPLICABLE LAW, MICROSOFT AND ITS
SUPPLIERS PROVIDE TO YOU THE SOFTWARE COMPONENT,
AND ANY (IF ANY) SUPPORT SERVICES RELATED TO THE
SOFTWARE COMPONENT ("SUPPORT SERVICES") AS IS AND
WITH ALL FAULTS; AND MICROSOFT AND ITS SUPPLIERS
HEREBY DISCLAIM WITH RESPECT TO THE SOFTWARE
COMPONENT AND SUPPORT SERVICES ALL WARRANTIES AND
CONDITIONS, WHETHER EXPRESS, IMPLIED OR STATUTORY,
INCLUDING, BUT NOT LIMITED TO, ANY (IF ANY) WARRANTIES
OR CONDITIONS OF OR RELATED TO: TITLE, NONINFRINGEMENT, MERCHANTABILITY, FITNESS FOR A
PARTICULAR PURPOSE, LACK OF VIRUSES, ACCURACY OR
COMPLETENESS OF RESPONSES, RESULTS, LACK OF
NEGLIGENCE OR LACK OF WORKMANLIKE EFFORT, QUIET
ENJOYMENT, QUIET POSSESSION, AND CORRESPONDENCE TO
DESCRIPTION. THE ENTIRE RISK ARISING OUT OF USE OR
PERFORMANCE OF THE SOFTWARE COMPONENT AND ANY
SUPPORT SERVICES REMAINS WITH YOU.
16
Software Engineering Problem
Building software will always be
hard. There is inherently
no silver bullet (Brooks, 1987)
18
Is it Possible?
19
Sofware Quality?
• Software quality is (IEEE, 1991):
1. The degree to which a
system, component, or
process meets specified
requirements
2. The degree to which a
system, component, or
process meets customer or
user needs or expectations
• Quality means conformance
to requirements (Crosby, 1979)
20
1.2 Systems Analyst and Its Roles
21
Analyst Related Role
1.
2.
3.
4.
5.
Business analyst
System analyst
Infrastructure analyst
Change management analyst
Project manager
22
Role in System Development
Project Manager
Business
Analyst
System
Analyst
Programmer
23
Tester
Business Analyst
• Focuses on business issues surrounding
the system
• The business value of the system
• Improvements in business processes
• New business processes needed with new system
• Requires business skills and professional
training
24
System Analyst
• The systems analyst is a key person analyzing the
business, identifying opportunities for
improvement, and designing information systems
to implement these ideas
• Focuses on Information System (IS) Issues
• How IS can improve business processes
• Designs new information system
• Ensures IS quality standards are maintained
• Requires training & experience in design analysis,
programming, business (to lesser degree)
25
Infrastructure Analyst
• Focuses on interfaces between new
system & existing infrastructure
• Makes sure new system follows organizational
standards
• Identifies required infrastructure changes
• Requires experience in network &
database administration
• Requires knowledge of hardware systems
26
Change Management Analyst
• Focuses on system installation
• Documentation & support for users
• Coordinate training of users
• Strategies to overcome resistance
• Requires experience in organizational
behavior
• Requires experience in change
management
27
Project Manager
• Responsible for schedule and budget
• Ensures promised benefits are delivered
• Manages team members
• Responsible for project plan and
reporting progress
• Requires project management
experience
28
29
1.3 Systems Development Life Cycle
30
Systems Development Life Cycle (SDLC)
Planning
Implementation
Analysis
Design
31
Project Phases
1. Planning: Why build the system?
•
System request, feasibility analysis, project size
estimation
2. Analysis: Who, what, when, where will the system be?
•
Requirement gathering, business process modeling
3. Design: How will the system work?
•
Program design, user interface design, data design
4. Implementation: System construction and delivery
•
System construction, testing, documentation and
installation
32
Planning
1. Identifying business value (System Request)
• Lower costs
• Increase profits
2. Analyze feasibility
• Technical Feasibility
• Economic Feasibility
• Organizational Feasibility
(System Proposal)
33
Analysis
1. Requirement gathering by answering the
questions:
• Who will use the system?
• What will the system do?
• When will it be used?
2. Investigate the current system
3. Identify possible improvements
4. Develop a concept for new system
(System Specification)
34
Design
1. Program Design (UML Diagrams)
• What programs need to be written
• Exactly what each program will do
2. User Interface Design
• How users interact with system
• Forms / reports used by the system
3. Data Design (ER Diagrams)
• What data is to be stored
• What format the data will be in
• Where the data will be stored
(System Specification)
35
Implementation
1. Construction
• New system is built and tested
• Often testing is the longest part
2. Testing
•
•
•
•
Unit Testing
Integration Testing
System Testing
User Acceptance Test
3. Installation
• Old system is turned off
• New system is turned on
36
Processes and Deliverables
Process
Product
Planning
System Proposal
Analysis
Design
System Specification
Implementation
New System with
Testing/Maintenance Plan
37
SDLC and Deliverables
Planning
(System Proposal)
Implementation
Analysis
(New System)
(System Specification)
Design
(System Specification)
38
1.4 Systems Development
Methodology (Model Process)
39
Software Development Methodology
(Model Process)
• A formalized approach to implementing the
Software Development Life Cycle (SDLC) (Dennis, 2012)
• A simplified representation of a software process
(Sommerville, 2015)
• A distinct set of activities, actions, tasks, milestones,
and work products required to engineer high quality
software (Pressman, 2015)
40
Major Methodologies
1. Structured Design
More
Prescriptive/
Documentation
• Waterfall method
• Parallel development
2. Rapid Application Development
• Phased Development
• Prototyping
• Throw-away Prototyping
More
Adaptive/
3. Agile Development
Communication
• Extreme Programming (XP)
• Scrum
• Lean Development
41
(Dennis, 2012)
Methodology Timeline
42
Activities and Artifacts Comparison
43
1.4.1 Structured Design
44
Structured Design
• Projects move methodically from one to the
next step
• Generally, a step is finished before the next
one begins
• Type of Structured Desin:
1. Waterfall Method
2. Parallel Development
45
Waterfall Method
Pros
Cons
Identifies systems
requirements long
before programming
Begins, it minimizes
change to the
requirements as the
project proceed (mature)
Design must be specified on
paper before programming
begins
Long time between system
proposal and delivery of new
system
Rework is very hard
46
Parallel Development
Addresses problem of time
gap between proposal and
delivery:
•
•
Breaks project into parallel
subproject
Integrates them at the end
47
1.4.2 Rapid Application Development
48
Rapid Application Development (RAD)
• Type of RAD:
1. Phased development: a series of versions
2. Prototyping: System prototyping
3. Throw-away prototyping: design prototyping
• Critical elements to speed up the SDLC:
• CASE tools
• Visual programming languages
• Code generators
49
RAD: Phased Development
Pros
Cons
Gets useful system to
users quickly
Initial system is intentionally
incomplete
Most important
functions tested most
System requirements expand
as users see versions
50
RAD: Prototyping
• Analysis, Design, Implementation are
performed concurrently
• Start with a "quick-and-dirty" prototype,
Provides minimal functionality
• Repeat process, refining the prototype
each time
• Stop when prototype is a working system
51
RAD: Throw-Away Prototyping
• Use prototypes only to understand requirements
• Example: use html to show UI
• Prototype is not a working design
• Once requirements are understood, the
prototypes are thrown away
52
1.4.3 Agile Development
53
3. Agile Development
• Just a few rules that are easy to learn and follow
• Streamline the SDLC
• Eliminate much of the modeling and documentation
• Emphasize simple, iterative application development
• Type of Agile Development:
1.
2.
3.
4.
Extreme Programming (XP) (Kent Beck)
Scrum (Ken Schwaber and Jeff Sutherland)
Lean Development (Mary Poppendieck and Tom Poppendieck)
Dynamic Systems Development Model (DSDM) (Dane Faulkner)
54
Extreme Programming (XP)
55
XP Values
1. Communication: Building software requires
communicating requirements to the developers
2. Simplicity: Encourages starting with the simplest
solution, extra functionality can then be added later
3. Feedback:
1. Feedback from the system: by writing unit tests, or running
periodic integration tests, the programmers have direct
feedback from the state of the system after implementing
changes
2. Feedback from the customer: The acceptance tests are
planned once in every two or three weeks so the customer
can easily steer the development
3. Feedback from the team: When customers come up with new
requirements in the planning game the team directly gives an
estimation of the time that it will take to implement
4. Courage: Several practices embody courage. One is the
commandment to always design and code for today
and not for tomorrow
56
Scrum
• Project members form a Scrum Team consisting of
5–9 people
• The goal of the Sprint is determined and the
prioritized functionality is broken down into
detailed tasks
• The team is self-organized and the members have
a joint responsibility for the results
• Each Sprint enhances the product’s market value
and adds new functions and improvements that
can be delivered to the customer
57
Scrum
58
Iterative Scrum
Scrum
60
Scrum
61
Boards
62
63
XP vs Scrum vs Lean
• XP deals with how to work with
programming
• Scrum deals with how the project is
organized and planned
• Lean Development deals with which
comprehensive principles should apply for
the entire development organization
64
65
1.5 Methodology Selection Strategy
66
Selection Factors
1.
2.
3.
4.
5.
6.
Clarity of User Requirements
Familiarity with Technology
System Complexity
System Reliability
Short Time Schedules
Schedule Visibility
67
Selection Factors
68
Latihan Analisis Kasus:
Memilih Metodologi yang Tepat
• Seandainya, anda adalah seorang software engineer di
perusahaan PT BlackSoft, sebuah perusahaan IT yang
memiliki kantor cabang di berbagai tempat di dunia
• PT BlackSoft ingin membangun sebuah sistem yang bisa
menampilkan informasi tentang sumber daya manusia
yang dimiliki, baik itu lokasi saat ini, latar belakang
pendidikan, jadwal pekerjaan dan pengalaman kerja yang
dimiliki
• Asumsikan bahwa ini adalah ide baru yang belum pernah
diimplementasikan di PT BlackSoft sebelumnya
• PT BlackSoft memiliki jaringan internasional dimana
kantor cabang di berbagai negara menggunakan hardware
dan software yang berbeda
• Manajemen ingin agar sistem dapat selesai dikerjakan dan
mulai bisa berjalan dalam satu tahun
69
Summary -1• The systems analyst is a key person analyzing
the business, identifying opportunities for
improvement, and designing information
systems to implement these ideas
• There are five major team roles:
1.
2.
3.
4.
5.
Business analyst
Systems analyst
Infrastructure analyst
Change management analyst
Project manager
70
Summary -2• The Systems Development Lifecycle consists
of four stages: Planning, Analysis, Design, and
Implementation
• The major development methodologies:
1. Structured design
• Waterfall method
• Parallel development
2. RAD development
• Phased Development
• Prototyping
• Throw-away Prototyping
3. Agile development
• Extreme Programming
• Scrum
71
Referensi
1. Alan Dennis et al, Systems Analysis and Design with
UML 4th Edition, John Wiley and Sons, 2013
2. Kenneth E. Kendall and Julie E Kendall, Systems Analysis
and Design 8th Edition, Prentice Hall, 2010
3. Hassan Gomaa, Software Modeling and Design: UML,
Use Cases, Patterns, and Software Architectures,
Cambridge University Press, 2011
4. Gary B. Shelly and Harry J. Rosenblatt, Systems Analysis
and Design 9th Edition, Course Technology, 2011
5. Howard Podeswa, UML for the IT Business Analyst 2nd
Edition, Thomson Course Technology, 2009
6. Jeffrey A. Hoffer et al, Modern Systems Analysis and
Design 6th Edition, Prentice Hall, 2012
72
Download