introducing systems analysis, design & development concepts
DESCRIPTION
Basic concept on Systems/Software Analysis, Design & Development, how software engineering, large projects are done, collaborated, best practices & standards.TRANSCRIPT
![Page 1: Introducing systems analysis, design & development Concepts](https://reader034.vdocuments.site/reader034/viewer/2022052617/547b1ce9b4795963098b4cb2/html5/thumbnails/1.jpg)
IntroducingSystems Analysis, Design &
Development Concepts
Shafiul Azam Chowdhury
![Page 2: Introducing systems analysis, design & development Concepts](https://reader034.vdocuments.site/reader034/viewer/2022052617/547b1ce9b4795963098b4cb2/html5/thumbnails/2.jpg)
Task: Build a Simplest Accounting S/W
• You’ve been offered to build a very basic accounting software for Bangoo Banks Inc.– You’ll need to collaborate with 3-4 other
developers.– You’ll receive handsome amount of cash for full
functional software!– Deadline: very, very strict. Say, couple of months?
![Page 3: Introducing systems analysis, design & development Concepts](https://reader034.vdocuments.site/reader034/viewer/2022052617/547b1ce9b4795963098b4cb2/html5/thumbnails/3.jpg)
What are you going to do?
• Divide the total project in visible sections, say: – User Accounts– Human Resource– Accounting– Etc…
• And started asking questions to your clients how they want the program behave, design database…
![Page 4: Introducing systems analysis, design & development Concepts](https://reader034.vdocuments.site/reader034/viewer/2022052617/547b1ce9b4795963098b4cb2/html5/thumbnails/4.jpg)
All four developers started coding as fast as you can to maintain deadline.
![Page 5: Introducing systems analysis, design & development Concepts](https://reader034.vdocuments.site/reader034/viewer/2022052617/547b1ce9b4795963098b4cb2/html5/thumbnails/5.jpg)
After some days… you felt like integrating your works?
• But you figured out you need a change in some part, you could change it, but others’ code can break?
• You hardly understand what your friend means by variable baln or function register()
• Your disc crashed and your codes are gone? • You’ve created too many folders like code_old
code_working, code_new2, code_final… now what?• How do you merge everybody’s code to a full-
functional system?
![Page 6: Introducing systems analysis, design & development Concepts](https://reader034.vdocuments.site/reader034/viewer/2022052617/547b1ce9b4795963098b4cb2/html5/thumbnails/6.jpg)
Messed Up?
• Without putting your code in a function, you just wrote it down, thinking, “Hey, I’ll not use this code anywhere else! So Why do I need to put it in a function or class?”
• But, you never know…– Client may change his mind– New functionalities may appear in future– And you’re very likely to duplicate same codes.– Man is mortal. To fix buggy codes you’ll need to investigate
your whole project number of times you copy-pasted same code. • Hard to find bugs.
![Page 7: Introducing systems analysis, design & development Concepts](https://reader034.vdocuments.site/reader034/viewer/2022052617/547b1ce9b4795963098b4cb2/html5/thumbnails/7.jpg)
Software Evolves…
• If your software is usable, it will have changes in it and have future releases.
• Clients will add new features, or users will want changes.
![Page 8: Introducing systems analysis, design & development Concepts](https://reader034.vdocuments.site/reader034/viewer/2022052617/547b1ce9b4795963098b4cb2/html5/thumbnails/8.jpg)
After some days, you’re about to bring some changes in your code.
![Page 9: Introducing systems analysis, design & development Concepts](https://reader034.vdocuments.site/reader034/viewer/2022052617/547b1ce9b4795963098b4cb2/html5/thumbnails/9.jpg)
And…Is that
Hebrew?
You don’t understand your
own code
![Page 10: Introducing systems analysis, design & development Concepts](https://reader034.vdocuments.site/reader034/viewer/2022052617/547b1ce9b4795963098b4cb2/html5/thumbnails/10.jpg)
If you don’t practice standards, it’ll be very, very difficult to maintain the project later.
So What are best practices?
![Page 11: Introducing systems analysis, design & development Concepts](https://reader034.vdocuments.site/reader034/viewer/2022052617/547b1ce9b4795963098b4cb2/html5/thumbnails/11.jpg)
Software Development Life Cycle
![Page 12: Introducing systems analysis, design & development Concepts](https://reader034.vdocuments.site/reader034/viewer/2022052617/547b1ce9b4795963098b4cb2/html5/thumbnails/12.jpg)
Introducing SADD
• Systems…– Step 1: Analysis– Step 2: Design– Step 3: Development
• Step 4: Evolve! Back to step 1
![Page 13: Introducing systems analysis, design & development Concepts](https://reader034.vdocuments.site/reader034/viewer/2022052617/547b1ce9b4795963098b4cb2/html5/thumbnails/13.jpg)
First Step: Systems Analysis
• Known as Requirement Analysis• Extract information from your clients on what
the software is supposed to do.• Place them on SRS Cards
• Useful to understand the total scope of application, defining priority and leads to modular design.
![Page 14: Introducing systems analysis, design & development Concepts](https://reader034.vdocuments.site/reader034/viewer/2022052617/547b1ce9b4795963098b4cb2/html5/thumbnails/14.jpg)
Sample Requirement Analysis for some Alumni Website…
![Page 15: Introducing systems analysis, design & development Concepts](https://reader034.vdocuments.site/reader034/viewer/2022052617/547b1ce9b4795963098b4cb2/html5/thumbnails/15.jpg)
SRS (Software Requirement Specification) Cards for Requirement Analysis
![Page 16: Introducing systems analysis, design & development Concepts](https://reader034.vdocuments.site/reader034/viewer/2022052617/547b1ce9b4795963098b4cb2/html5/thumbnails/16.jpg)
Step 2: Design your system
• Once you’re done with analysis, design it.• The great majority of the types of errors found
in testing the code had originated in the design phase – See figure in next slide.
![Page 17: Introducing systems analysis, design & development Concepts](https://reader034.vdocuments.site/reader034/viewer/2022052617/547b1ce9b4795963098b4cb2/html5/thumbnails/17.jpg)
![Page 18: Introducing systems analysis, design & development Concepts](https://reader034.vdocuments.site/reader034/viewer/2022052617/547b1ce9b4795963098b4cb2/html5/thumbnails/18.jpg)
Systems Design
• Following Design Patterns– Why reinvent the wheel?
• Modular Design– Loosely coupled code– Easy to extend your program– Code less. Reuse your code
• Build Wireframes• Follow Single Responsibility Principle
![Page 19: Introducing systems analysis, design & development Concepts](https://reader034.vdocuments.site/reader034/viewer/2022052617/547b1ce9b4795963098b4cb2/html5/thumbnails/19.jpg)
Building Wireframe
• Create Mock-up/prototype of your application before starting coding.– Can be built using GUI tools very rapidly– Client can know how your application will look
like/interact with users.– Non functional.
![Page 20: Introducing systems analysis, design & development Concepts](https://reader034.vdocuments.site/reader034/viewer/2022052617/547b1ce9b4795963098b4cb2/html5/thumbnails/20.jpg)
Wireframe Tools
![Page 21: Introducing systems analysis, design & development Concepts](https://reader034.vdocuments.site/reader034/viewer/2022052617/547b1ce9b4795963098b4cb2/html5/thumbnails/21.jpg)
Single Responsibility Principle
![Page 22: Introducing systems analysis, design & development Concepts](https://reader034.vdocuments.site/reader034/viewer/2022052617/547b1ce9b4795963098b4cb2/html5/thumbnails/22.jpg)
Development: Teamwork
![Page 23: Introducing systems analysis, design & development Concepts](https://reader034.vdocuments.site/reader034/viewer/2022052617/547b1ce9b4795963098b4cb2/html5/thumbnails/23.jpg)
Code Green. Test Units.
![Page 24: Introducing systems analysis, design & development Concepts](https://reader034.vdocuments.site/reader034/viewer/2022052617/547b1ce9b4795963098b4cb2/html5/thumbnails/24.jpg)
Documentation
• You alone are not coding– Others will work with your code– You will work with other’s code.
• Provide Documentation
![Page 25: Introducing systems analysis, design & development Concepts](https://reader034.vdocuments.site/reader034/viewer/2022052617/547b1ce9b4795963098b4cb2/html5/thumbnails/25.jpg)
Take help of Development Tools
• You figured out you need a change in some part, you could change it, but others’ code can break?
• You hardly understand what your friend means by variable baln or function register()
• Your disc crashed and your codes are gone? • You’ve created too many folders like code_old
code_working, code_new2, code_final… now what?
• How do you merge everybody’s code to a full-functional system?
Refractor
Distributed
Repos
Revision
Controlling
Unit Test
![Page 26: Introducing systems analysis, design & development Concepts](https://reader034.vdocuments.site/reader034/viewer/2022052617/547b1ce9b4795963098b4cb2/html5/thumbnails/26.jpg)
Understanding Your Responsibility
Is that you?
You need to work with a
lot of people!
![Page 27: Introducing systems analysis, design & development Concepts](https://reader034.vdocuments.site/reader034/viewer/2022052617/547b1ce9b4795963098b4cb2/html5/thumbnails/27.jpg)
Project Management Tools
• Coding is not your only responsibility.– Issues are assigned to you by your Project
Manager– Bug fixing tasks assigned to you– You fix code and re-assign it to Tester.
• To simplify all these, various Tools are available. – Using these tools guarantee standards.
![Page 28: Introducing systems analysis, design & development Concepts](https://reader034.vdocuments.site/reader034/viewer/2022052617/547b1ce9b4795963098b4cb2/html5/thumbnails/28.jpg)
Tools: Revision Controlling
• Git is a powerful distributed version controlling system.– Stores complete history of your source code at
different stages of project life cycle.– Easy merging of everyone’s copy of work.– Distributed.
![Page 29: Introducing systems analysis, design & development Concepts](https://reader034.vdocuments.site/reader034/viewer/2022052617/547b1ce9b4795963098b4cb2/html5/thumbnails/29.jpg)
Project Management Tools
• Project Management applications come with rich features like– Role Management (PM, Tester, Designer,
Programmer,…)– Bugs Reporting– Issue Tracking & Assigning– Gaunt Charts for schedule management– Documentation
![Page 30: Introducing systems analysis, design & development Concepts](https://reader034.vdocuments.site/reader034/viewer/2022052617/547b1ce9b4795963098b4cb2/html5/thumbnails/30.jpg)
Tools: Gaunt Chart
![Page 31: Introducing systems analysis, design & development Concepts](https://reader034.vdocuments.site/reader034/viewer/2022052617/547b1ce9b4795963098b4cb2/html5/thumbnails/31.jpg)
Thank You!
• Presentation prepared by– Shafiul Azam Chowdhury– Student, CSE, BUET– http://shafiul.users.sf.net
![Page 32: Introducing systems analysis, design & development Concepts](https://reader034.vdocuments.site/reader034/viewer/2022052617/547b1ce9b4795963098b4cb2/html5/thumbnails/32.jpg)
References• http://mixergy.com/wp-content/uploads/fast-typing.jpg• http://www.confessionsofaphotoshopnerd.com/storage/Confessions%20of%20
a%20photoshop%20nerd.jpg?__SQUARESPACE_CACHEVERSION=1294205000507
• http://www.fgsd.com.au/wp-content/uploads/2011/09/Software-Policies-Processes.jpg
• http://en.wikipedia.org/wiki/Systems_development_life-cycle• http://sunset.usc.edu/csse/TECHRPTS/1975/usccse75-501/usccse75-501.pdf• http://farm6.static.flickr.com/5227/5643033953_9b542af5a1.jpg• www.jsu.edu/mcis/docs/SRSSample.doc• http://cdn.seomoz.org/images/upload/axure-wireframe.gif• http://www.re-vision.com/webwork/p27wireframes/drawing_small.jpg• http://elegantcode.com/2008/12/22/single-responsibility-principle/• http://www.emqube.com/images/side_team.jpg• http://www.bluecollarobjects.com/pub/Main/TestDrivenDevelopment/RedGren
RefactorTight.jpg• http://www.agilemodeling.com/images/generalizingSpecialistsTaylorism.jpg• http://home.snc.edu/eliotelfner/333/pictures/Gantt.gif