SlideShare une entreprise Scribd logo
1  sur  32
Introducing
Systems Analysis, Design &
Development Concepts
Shafiul Azam Chowdhury
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?
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…
All four developers started coding as
fast as you can to maintain deadline.
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?
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. 
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.
After some days, you’re about to bring
some changes in your code.
And…
Is that
Hebrew?
You don’t
understand your
own code 
If you don’t practice standards, it’ll be very,
very difficult to maintain the project later.
So What are
best practices?
Software Development Life Cycle
Introducing SADD
• Systems…
– Step 1: Analysis
– Step 2: Design
– Step 3: Development
• Step 4: Evolve! Back to step 1
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.
Sample Requirement Analysis
for some Alumni Website…
SRS (Software Requirement Specification)
Cards for Requirement Analysis
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.
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
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.
Wireframe Tools
Single Responsibility Principle
Development: Teamwork
Code Green. Test Units.
Documentation
• You alone are not coding
– Others will work with your code
– You will work with other’s code.
• Provide Documentation
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?
Understanding Your Responsibility
You need to
work with a
lot of people!
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.
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.
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
Tools: Gaunt Chart
Thank You!
• Presentation prepared by
– Shafiul Azam Chowdhury
– Student, CSE, BUET
– http://shafiul.users.sf.net
References
• http://mixergy.com/wp-content/uploads/fast-typing.jpg
• http://www.confessionsofaphotoshopnerd.com/storage/Confessions%20of%20a%20photoshop%2
0nerd.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/RedGrenRefactorTight.jpg
• http://www.agilemodeling.com/images/generalizingSpecialistsTaylorism.jpg
• http://home.snc.edu/eliotelfner/333/pictures/Gantt.gif

Contenu connexe

Tendances

Is your code SOLID enough?
 Is your code SOLID enough? Is your code SOLID enough?
Is your code SOLID enough?SARCCOM
 
Importance of the quality of code
Importance of the quality of codeImportance of the quality of code
Importance of the quality of codeShwe Yee
 
tantangan menjadi developer di abad 21
tantangan menjadi developer di abad 21tantangan menjadi developer di abad 21
tantangan menjadi developer di abad 21DicodingEvent
 
Documenting code yapceu2016
Documenting code yapceu2016Documenting code yapceu2016
Documenting code yapceu2016Søren Lund
 
Code review an approach
Code review an approachCode review an approach
Code review an approachSteve Essich
 
An Evaluation of Pair Programming Practice
An Evaluation of Pair Programming PracticeAn Evaluation of Pair Programming Practice
An Evaluation of Pair Programming PracticeKranthi Lakum
 
CS 584 - Aligning development tools with the way programmers think about code...
CS 584 - Aligning development tools with the way programmers think about code...CS 584 - Aligning development tools with the way programmers think about code...
CS 584 - Aligning development tools with the way programmers think about code...Sergii Shmarkatiuk
 
Software architecture introduction
Software architecture introductionSoftware architecture introduction
Software architecture introductionFreddy Munandar
 
Tdd 4 everyone full version
Tdd 4 everyone full versionTdd 4 everyone full version
Tdd 4 everyone full versionLior Israel
 
Language-Oriented Business Applications
Language-Oriented Business ApplicationsLanguage-Oriented Business Applications
Language-Oriented Business ApplicationsMarkus Voelter
 
Programming tools for developers
Programming tools for developersProgramming tools for developers
Programming tools for developersBBVA API Market
 
Best Practices - Software Engineering
Best Practices - Software EngineeringBest Practices - Software Engineering
Best Practices - Software Engineering3Quill Softwares
 
Generic Tools - Specific Languages (PhD Defense Slides)
Generic Tools - Specific Languages (PhD Defense Slides)Generic Tools - Specific Languages (PhD Defense Slides)
Generic Tools - Specific Languages (PhD Defense Slides)Markus Voelter
 
Test Driven Development - a Practitioner’s Perspective
Test Driven Development - a Practitioner’s PerspectiveTest Driven Development - a Practitioner’s Perspective
Test Driven Development - a Practitioner’s PerspectiveMalinda Kapuruge
 
Introduction to Automated Testing
Introduction to Automated TestingIntroduction to Automated Testing
Introduction to Automated TestingLars Thorup
 
Version control for PL/SQL
Version control for PL/SQLVersion control for PL/SQL
Version control for PL/SQLGerger
 

Tendances (20)

Code Inspection
Code InspectionCode Inspection
Code Inspection
 
Chapter 1
Chapter 1Chapter 1
Chapter 1
 
Lecture 8
Lecture 8Lecture 8
Lecture 8
 
Is your code SOLID enough?
 Is your code SOLID enough? Is your code SOLID enough?
Is your code SOLID enough?
 
Importance of the quality of code
Importance of the quality of codeImportance of the quality of code
Importance of the quality of code
 
tantangan menjadi developer di abad 21
tantangan menjadi developer di abad 21tantangan menjadi developer di abad 21
tantangan menjadi developer di abad 21
 
Documenting code yapceu2016
Documenting code yapceu2016Documenting code yapceu2016
Documenting code yapceu2016
 
Code review an approach
Code review an approachCode review an approach
Code review an approach
 
An Evaluation of Pair Programming Practice
An Evaluation of Pair Programming PracticeAn Evaluation of Pair Programming Practice
An Evaluation of Pair Programming Practice
 
CS 584 - Aligning development tools with the way programmers think about code...
CS 584 - Aligning development tools with the way programmers think about code...CS 584 - Aligning development tools with the way programmers think about code...
CS 584 - Aligning development tools with the way programmers think about code...
 
Software architecture introduction
Software architecture introductionSoftware architecture introduction
Software architecture introduction
 
Tdd 4 everyone full version
Tdd 4 everyone full versionTdd 4 everyone full version
Tdd 4 everyone full version
 
Language-Oriented Business Applications
Language-Oriented Business ApplicationsLanguage-Oriented Business Applications
Language-Oriented Business Applications
 
Programming tools for developers
Programming tools for developersProgramming tools for developers
Programming tools for developers
 
Best Practices - Software Engineering
Best Practices - Software EngineeringBest Practices - Software Engineering
Best Practices - Software Engineering
 
Generic Tools - Specific Languages (PhD Defense Slides)
Generic Tools - Specific Languages (PhD Defense Slides)Generic Tools - Specific Languages (PhD Defense Slides)
Generic Tools - Specific Languages (PhD Defense Slides)
 
Code Quality
Code QualityCode Quality
Code Quality
 
Test Driven Development - a Practitioner’s Perspective
Test Driven Development - a Practitioner’s PerspectiveTest Driven Development - a Practitioner’s Perspective
Test Driven Development - a Practitioner’s Perspective
 
Introduction to Automated Testing
Introduction to Automated TestingIntroduction to Automated Testing
Introduction to Automated Testing
 
Version control for PL/SQL
Version control for PL/SQLVersion control for PL/SQL
Version control for PL/SQL
 

En vedette

REST -Web services
REST -Web servicesREST -Web services
REST -Web servicesbsadd
 
Hello Git
Hello GitHello Git
Hello Gitbsadd
 
Server deployment
Server deploymentServer deployment
Server deploymentbsadd
 
BSADD-Git-TRAINING
BSADD-Git-TRAININGBSADD-Git-TRAINING
BSADD-Git-TRAININGbsadd
 
Bsadd Project Idea & Platform
Bsadd Project Idea & PlatformBsadd Project Idea & Platform
Bsadd Project Idea & Platformbsadd
 
Session On Mockups
Session On MockupsSession On Mockups
Session On Mockupsbsadd
 

En vedette (7)

REST -Web services
REST -Web servicesREST -Web services
REST -Web services
 
Hello Git
Hello GitHello Git
Hello Git
 
Server deployment
Server deploymentServer deployment
Server deployment
 
BSADD-Git-TRAINING
BSADD-Git-TRAININGBSADD-Git-TRAINING
BSADD-Git-TRAINING
 
Patacas ana
Patacas anaPatacas ana
Patacas ana
 
Bsadd Project Idea & Platform
Bsadd Project Idea & PlatformBsadd Project Idea & Platform
Bsadd Project Idea & Platform
 
Session On Mockups
Session On MockupsSession On Mockups
Session On Mockups
 

Similaire à Introducing Systems Analysis, Design & Development Concepts

Introducing systems analysis, design & development Concepts
Introducing systems analysis, design & development ConceptsIntroducing systems analysis, design & development Concepts
Introducing systems analysis, design & development ConceptsShafiul Azam Chowdhury
 
Capability Building for Cyber Defense: Software Walk through and Screening
Capability Building for Cyber Defense: Software Walk through and Screening Capability Building for Cyber Defense: Software Walk through and Screening
Capability Building for Cyber Defense: Software Walk through and Screening Maven Logix
 
How Microsoft ALM Tools Can Improve Your Bottom Line
How Microsoft ALM Tools Can Improve Your Bottom LineHow Microsoft ALM Tools Can Improve Your Bottom Line
How Microsoft ALM Tools Can Improve Your Bottom LineImaginet
 
Research software identification - Catherine Jones
Research software identification - Catherine JonesResearch software identification - Catherine Jones
Research software identification - Catherine JonesJisc RDM
 
unit 1.pptx regasts sthatbabs shshsbsvsbsh
unit 1.pptx regasts sthatbabs shshsbsvsbshunit 1.pptx regasts sthatbabs shshsbsvsbsh
unit 1.pptx regasts sthatbabs shshsbsvsbshsagarjsicg
 
An Introduction To Software Development - Implementation
An Introduction To Software Development - ImplementationAn Introduction To Software Development - Implementation
An Introduction To Software Development - ImplementationBlue Elephant Consulting
 
Agile Software Development
Agile Software DevelopmentAgile Software Development
Agile Software DevelopmentAhmet Bulut
 
Overview of Software Engineering Principles - SCPS311.pptx
Overview of Software Engineering Principles - SCPS311.pptxOverview of Software Engineering Principles - SCPS311.pptx
Overview of Software Engineering Principles - SCPS311.pptxBypassFrp
 
Software Engineering (Introduction to Software Engineering)
Software Engineering (Introduction to Software Engineering)Software Engineering (Introduction to Software Engineering)
Software Engineering (Introduction to Software Engineering)ShudipPal
 
Agile_SDLC_Node.js@Paypal_ppt
Agile_SDLC_Node.js@Paypal_pptAgile_SDLC_Node.js@Paypal_ppt
Agile_SDLC_Node.js@Paypal_pptHitesh Kumar
 
Amanda Cinnamon - Treat Your Code Like the Valuable Software It Is
Amanda Cinnamon - Treat Your Code Like the Valuable Software It IsAmanda Cinnamon - Treat Your Code Like the Valuable Software It Is
Amanda Cinnamon - Treat Your Code Like the Valuable Software It IsRehgan Avon
 

Similaire à Introducing Systems Analysis, Design & Development Concepts (20)

Introducing systems analysis, design & development Concepts
Introducing systems analysis, design & development ConceptsIntroducing systems analysis, design & development Concepts
Introducing systems analysis, design & development Concepts
 
Capability Building for Cyber Defense: Software Walk through and Screening
Capability Building for Cyber Defense: Software Walk through and Screening Capability Building for Cyber Defense: Software Walk through and Screening
Capability Building for Cyber Defense: Software Walk through and Screening
 
SE Unit-1.pptx
SE Unit-1.pptxSE Unit-1.pptx
SE Unit-1.pptx
 
How Microsoft ALM Tools Can Improve Your Bottom Line
How Microsoft ALM Tools Can Improve Your Bottom LineHow Microsoft ALM Tools Can Improve Your Bottom Line
How Microsoft ALM Tools Can Improve Your Bottom Line
 
Research software identification - Catherine Jones
Research software identification - Catherine JonesResearch software identification - Catherine Jones
Research software identification - Catherine Jones
 
Lo 20
Lo 20Lo 20
Lo 20
 
unit 1.pptx regasts sthatbabs shshsbsvsbsh
unit 1.pptx regasts sthatbabs shshsbsvsbshunit 1.pptx regasts sthatbabs shshsbsvsbsh
unit 1.pptx regasts sthatbabs shshsbsvsbsh
 
Sdlc model
Sdlc modelSdlc model
Sdlc model
 
An Introduction To Software Development - Implementation
An Introduction To Software Development - ImplementationAn Introduction To Software Development - Implementation
An Introduction To Software Development - Implementation
 
Agile Software Development
Agile Software DevelopmentAgile Software Development
Agile Software Development
 
OOSE UNIT-1.pdf
OOSE UNIT-1.pdfOOSE UNIT-1.pdf
OOSE UNIT-1.pdf
 
Overview of Software Engineering Principles - SCPS311.pptx
Overview of Software Engineering Principles - SCPS311.pptxOverview of Software Engineering Principles - SCPS311.pptx
Overview of Software Engineering Principles - SCPS311.pptx
 
Usable Software Design
Usable Software DesignUsable Software Design
Usable Software Design
 
Raising the Bar
Raising the BarRaising the Bar
Raising the Bar
 
Software engineering
Software engineeringSoftware engineering
Software engineering
 
Coding - SDLC Model
Coding - SDLC ModelCoding - SDLC Model
Coding - SDLC Model
 
Software Engineering (Introduction to Software Engineering)
Software Engineering (Introduction to Software Engineering)Software Engineering (Introduction to Software Engineering)
Software Engineering (Introduction to Software Engineering)
 
Quality Software Development
Quality Software DevelopmentQuality Software Development
Quality Software Development
 
Agile_SDLC_Node.js@Paypal_ppt
Agile_SDLC_Node.js@Paypal_pptAgile_SDLC_Node.js@Paypal_ppt
Agile_SDLC_Node.js@Paypal_ppt
 
Amanda Cinnamon - Treat Your Code Like the Valuable Software It Is
Amanda Cinnamon - Treat Your Code Like the Valuable Software It IsAmanda Cinnamon - Treat Your Code Like the Valuable Software It Is
Amanda Cinnamon - Treat Your Code Like the Valuable Software It Is
 

Dernier

The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024Rafal Los
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfEnterprise Knowledge
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...apidays
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024The Digital Insurer
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountPuma Security, LLC
 
Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024The Digital Insurer
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonAnna Loughnan Colquhoun
 
Top 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live StreamsTop 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live StreamsRoshan Dwivedi
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Miguel Araújo
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Drew Madelung
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsMaria Levchenko
 
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEarley Information Science
 
Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Allon Mureinik
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptxHampshireHUG
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processorsdebabhi2
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking MenDelhi Call girls
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreternaman860154
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slidespraypatel2
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024The Digital Insurer
 

Dernier (20)

The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path Mount
 
Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
Top 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live StreamsTop 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live Streams
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
 
Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slides
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024
 

Introducing Systems Analysis, Design & Development Concepts

  • 1. Introducing Systems Analysis, Design & Development Concepts Shafiul Azam Chowdhury
  • 2. 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?
  • 3. 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…
  • 4. All four developers started coding as fast as you can to maintain deadline.
  • 5. 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?
  • 6. 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. 
  • 7. 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.
  • 8. After some days, you’re about to bring some changes in your code.
  • 10. If you don’t practice standards, it’ll be very, very difficult to maintain the project later. So What are best practices?
  • 12. Introducing SADD • Systems… – Step 1: Analysis – Step 2: Design – Step 3: Development • Step 4: Evolve! Back to step 1
  • 13. 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.
  • 14. Sample Requirement Analysis for some Alumni Website…
  • 15. SRS (Software Requirement Specification) Cards for Requirement Analysis
  • 16. 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.
  • 17.
  • 18. 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
  • 19. 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.
  • 24. Documentation • You alone are not coding – Others will work with your code – You will work with other’s code. • Provide Documentation
  • 25. 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?
  • 26. Understanding Your Responsibility You need to work with a lot of people!
  • 27. 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.
  • 28. 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.
  • 29. 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
  • 31. Thank You! • Presentation prepared by – Shafiul Azam Chowdhury – Student, CSE, BUET – http://shafiul.users.sf.net
  • 32. References • http://mixergy.com/wp-content/uploads/fast-typing.jpg • http://www.confessionsofaphotoshopnerd.com/storage/Confessions%20of%20a%20photoshop%2 0nerd.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/RedGrenRefactorTight.jpg • http://www.agilemodeling.com/images/generalizingSpecialistsTaylorism.jpg • http://home.snc.edu/eliotelfner/333/pictures/Gantt.gif