0% found this document useful (0 votes)
142 views38 pages

Module 2 Relevant Tools Standards and Engineering Constraints

The document outlines key tools, standards, and engineering constraints relevant to software design and development. It discusses various tools such as GitHub, Figma, and Jira, and emphasizes the importance of adhering to standards for reliability and quality in software engineering. Additionally, it highlights common problems in system development and the role of system analysis in addressing these challenges.

Uploaded by

denmarks.bitua
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
142 views38 pages

Module 2 Relevant Tools Standards and Engineering Constraints

The document outlines key tools, standards, and engineering constraints relevant to software design and development. It discusses various tools such as GitHub, Figma, and Jira, and emphasizes the importance of adhering to standards for reliability and quality in software engineering. Additionally, it highlights common problems in system development and the role of system analysis in addressing these challenges.

Uploaded by

denmarks.bitua
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
You are on page 1/ 38

Software

D e s i g n
Module 2: Relevant Tools,
Standards, and Engineering
Constraints

Engr. Ferhanelfren Mao


Topic 1

Re l e v a n t To o l s
Please
Topic 1enter title
Relevant Tools
FILL IN THE TEXT OF THE DOCUMENT TITLE HERE

List of Tools:
 GitHub: a web-based hosting service that provides
a central place where a worldwide community of
developers can share, improve, and discuss software
projects. GitHub provides hosting for version control
and software development, with a graphical
interface and helpful collaboration and project
management features. GitHub is said to boast the
largest community of developers in the world, so it’s
often used for code review and issue tracking.
Please
Topic 1enter title
Relevant Tools
FILL IN THE TEXT OF THE DOCUMENT TITLE HERE

List of Tools:
 Figma: a cloud-based design tool that is similar
to Sketch in functionality and features, but with
big differences that make Figma better for team
collaboration. For those skeptical of such claims,
we’ll explain how Figma simplifies the design
process and is more effective than other programs
at helping designers and teams work together
efficiently.
Please
Topic 1enter title
Relevant Tools
FILL IN THE TEXT OF THE DOCUMENT TITLE HERE

List of Tools:
 Apache NetBeans: a leading Apache Project
committed to delivering robust software
development tools, including the NetBeans IDE
and Platform. It supports developers, users, and
businesses, facilitating quick, efficient, and easy
product development by leveraging Java platform
strengths and industry standards.
Please
Topic 1enter title
Relevant Tools
FILL IN THE TEXT OF THE DOCUMENT TITLE HERE

List of Tools:
 Microsoft Visio: used for drawing a variety of
diagrams. These include flowcharts, org charts,
building plans, floor plans, data flow diagrams,
process flow diagrams, business process
modeling, swimlane diagrams, 3D maps, and
many more. It's a Microsoft product, sold as an
addition to MS Office.
Please
Topic 1enter title
Relevant Tools
FILL IN THE TEXT OF THE DOCUMENT TITLE HERE

List of Tools:
 MYSQL Workbench: it is a unified cross-
platform, open-source relational database design
tool that adds functionality and ease to MySQL
and SQL development work. MySQL Workbench
provides data modeling, SQL development, and
various administration tools for configuration.
Please
Topic 1enter title
Relevant Tools
FILL IN THE TEXT OF THE DOCUMENT TITLE HERE

List of Tools:
 Jira the #1 agile project management tool used
by teams to plan, track, release and support
world-class software with confidence.
Topic 2

S t a n d a rd s
Please
Topic 2enter title
Standards
FILL IN THE TEXT OF THE DOCUMENT TITLE HERE

What are standards?


 Standards are official documents ensuring reliability in materials,
products, methods, or services.
 They define requirements, specifications, and guidelines,
developed through consensus by national or international bodies.
 Standards set the minimum accepted professional practice or
quality.
Please
Topic 2enter title
Standards
FILL IN THE TEXT OF THE DOCUMENT TITLE HERE

Why adopt a Standard?


 As means of transferring ‘good practice’ in software engineering.
 As a result of the demands of clients or procurement agencies.
 As result of the adoption of other standards or software process
improvement initiatives.
 As a knock-on consequence of product certification requirements.
Please
Topic 2enter title
Standards
FILL IN THE TEXT OF THE DOCUMENT TITLE HERE

Standardization Process
 Varies according to bodies engaged in standardization.
 Process may be set down in (meta) standard.
 Most sophisticated are international standards.
Please
Topic 2enter title
Standards
FILL IN THE TEXT OF THE DOCUMENT TITLE HERE

Types of Standards
1. ANSI (American National Standards Institute) -
basic, design, management systems, process,
product, test methods, and others.
2. ASTM (American Society for Testing and
Materials) - specification, test method,
terminology, practice, guide.
3. ISO (International Organization for
Standardization) - product, test methods, codes
of practice, guidelines, management systems.
Please
Topic 2enter title
Standards
FILL IN THE TEXT OF THE DOCUMENT TITLE HERE

Coverage at the Unit and System Level


The following table shows a snapshot of software engineering rules
contained in the measurement of each code quality characteristic at the
code unit level and system level.
Architectural Practices System
Software Quality Characteristic Coding Practices Unit Level
Level
• Protecting state in multiple • Multi-layer design compliance
threaded environments. • Software manages data
• Safe use of inheritance and integrity and consistency
polymorphism. • Exception handling through
REDABILITY
• Resource bounds transactions
management, complex code. • Class architecture compliance
• Managing allocated resources,
Timeouts.
Please
Topic 2enter title
Standards
FILL IN THE TEXT OF THE DOCUMENT TITLE HERE

Coverage at the Unit and System Level


Architectural Practices System
Software Quality Characteristic Coding Practices Unit Level
Level
• Compliance with Object- • Appropriate interactions with
Oriented best practices expensive or remote resources
• Compliance with SQL best • Data access performance and
PERFORMANCE EFFICIENCY
practices data management
• Expensive computations in • Memory, network and disk
loops space management
• Use of hard-coded credentials • Input validation
SECURITY • Buffer overflows • SQL injection
• Missing initialization • Cross-site scripting
Please
Topic 2enter title
Standards
FILL IN THE TEXT OF THE DOCUMENT TITLE HERE

Coverage at the Unit and System Level


Architectural Practices System
Software Quality Characteristic Coding Practices Unit Level
Level
• Unstructured and duplicated • Duplicated business logic
code • Compliance with initial
• High cyclomatic complexity architecture design
MAINTAINABILITY
• Controlled level of dynamic • Strict hierarchy of calling
coding between architectural layers
• Excessive horizontal layers
Topic 3

Engineering
Constraints
Please
Topic 3enter title
Engineering Constraints
FILL IN THE TEXT OF THE DOCUMENT TITLE HERE

Engineering Constraints Definition


 Engineering constraints are like rules or
limits that engineers need to follow when
designing or building something.
 These rules can be related to time, money,
technology, or other factors that may
affect what can or cannot be done in a
project.
 Engineers have to work within these
boundaries to create a successful and
practical solution.
Please
Topic 3enter title
Engineering Constraints
FILL IN THE TEXT OF THE DOCUMENT TITLE HERE

Engineering Constraints Definition


1. Time Constraints: Limited time available for development and
release; Project deadlines and time-to-market considerations.
2. Budget Constraints: Financial limitations on the project;
Constraints on resources, including funding for development,
testing, and maintenance.
3. Resource Constraints: Limited availability of human resources
(developers, testers, etc.); Availability of hardware, software, and
other infrastructure resources.
Please
Topic 3enter title
Engineering Constraints
FILL IN THE TEXT OF THE DOCUMENT TITLE HERE

Engineering Constraints Definition


4. Scope Constraints: Limitations on the features and functionalities
to be included in the software; Balancing scope with available
resources and project objectives.
5. Quality Constraints: Requirements for maintaining a certain level
of software quality; Constraints on performance, reliability, and
usability.
6. Security Constraints: Compliance with security standards and
protocols; Protection of sensitive information and prevention of
unauthorized access.
Topic 4

S o ft w a re
Engineering
Pro c e s s
Please
Topic 4enter title
Software Engineering Process
FILL IN THE TEXT OF THE DOCUMENT TITLE HERE

 The process, where software engineering, is the structure of the development of


a software product.
 There are different models of software process (software lifecycle) used in
different organizations and industries.

Software Engineering
 Concerned with the study of complex systems.
 Complex systems is composed of many components with complex relationships.
 The term engineering encompasses to use certain principles, the software
engineer should be equipped with appropriate methods and specific techniques
that will hep to incorporate the desired properties into process and product.
Topic 5

Pro b l e m s i n S y s t e m
Development
Please
Topic 5enter title
Problems in System Development
FILL IN THE TEXT OF THE DOCUMENT TITLE HERE

 Many problems are encountered during a system developments


process.
 The reasons for a system failure could be from either side of
development house or the user.
 The developer and the user should work in groups so that they
understand each other’s problems and solve them amicably.
Please
Topic 5enter title
Problems in System Development
FILL IN THE TEXT OF THE DOCUMENT TITLE HERE

 Time schedule overlap: a large project becomes very time-


consuming. There may be a drastic change in the system that has
been desired at the beginning. The originally designed concepts to
solve the scope of the project are no longer valid during
development. It causes a time delay in delivering the system. The
user may lose interest in further developing the project to
implement.
Please
Topic 5enter title
Problems in System Development
FILL IN THE TEXT OF THE DOCUMENT TITLE HERE

 User interface: The man-machine interaction is sometimes not


considered initially surfaced in due course of development. This
causes further additions of controls and displays. New hardware and
software are felt necessary to be included later.
 Test and integration: Often the project finds deficiencies during
testing and integration of the software project. The inadequate parts
are included in the latter part of the development process. This
happens due to inadequate thoughts being given at the initial stage.
Please
Topic 5enter title
Problems in System Development
FILL IN THE TEXT OF THE DOCUMENT TITLE HERE

 Maintenance Problem: Many problems surfaced at this phase after


handing over the system to the client. The user intends to include
many additions and changes to the system when he operates
independently. The developer allows the user to handle the system
and takes the modification activity as the user experiences many
technological, functional, and performance problems.
 Therefore, at the time of implementation, a warranty period is
considered to set right the teething problems by the developer
without any additional cost that is encountered by the user.
Solution to the
Pro b l e m
Please
Topic 5enter title
Solution to the Problem
FILL IN THE TEXT OF THE DOCUMENT TITLE HERE

 Time schedule overlap: preventing by postponing the technology


decisions for as long as possible or reducing the system development
cycle time.
 Since the financial impact is to be ascertained initially, detailed
analysis and design are made early in the development process. The
detailed cost estimates are made based on the analysis and design.
Technology decisions are taken on maturity issues.
 It is better to use the available software and hardware so that the
development time cycle can be reduced. A phased development
approach is a better solution. The system is analyzed, designed,
Please
Topic 5enter title
Problems in System Development
FILL IN THE TEXT OF THE DOCUMENT TITLE HERE

 User interface: Associate the users in the development process


who will be finally using the system. Take their views to simplify the
system operation. Many interface activities can be simplified and
streamlined during the development process.
 Test and integration: Define a comprehensive test program.
 Assign to a member of the system team having good testing
experience. Include a member from the user side during the
acceptance test. Obtain agreement from the user step by step after
module testing, integration testing, and system testing.
Please
Topic 5enter title
Problems in System Development
FILL IN THE TEXT OF THE DOCUMENT TITLE HERE

 Maintenance Problem: Design the system to accommodate the


changes at a later stage.
 The changes may include additional hardware to increase accuracy
and speed, changes in the software to increase the computing power.
Have proper documentation of the system so that it can be referred
for making a change at a later stage during its life cycle.
Topic 6

System Analysis
Please
Topic 6enter title
System Analysis
FILL IN THE TEXT OF THE DOCUMENT TITLE HERE

 System Analysis is the process of gathering and interpreting the facts, and
solving the problem using the information to recommend improvements to
the system.
 System analysis involves the study of an application area to fully understand
the problem being posed.
 A system analyst is a designated person who is responsible to study and
design a system. A system analyst has many roles to play as an investigator,
planner, designer, modulator, communicator, implementor, trainer, change
agent, architect, psychologist, and salesperson.
 An efficient system analyst can take the entire responsibility to take up the
software project from initiation to implementation. A successful analyst can
dream of a successful software project.
Please
Topic 6enter title
System Analysis
FILL IN THE TEXT OF THE DOCUMENT TITLE HERE

The analyst, during system analysis, has to carry out the


following tasks:
 Understand the existing system, its merits, and demerits.
 Planning the new application or modification of the existing one.
 Scheduling the activities to be performed during the development.
 Consider alternative candidate solutions.
 Emphasize the re-engineering process and method study.
 Carry out operations like backup procedures, audits, quality checks,
and security procedures.
 Lay down the plans and cost reduction activities.
Topic 7

S y s t e m A rc h i t e c t u re
and Design
Please
Topic 6enter title
System Analysis
FILL IN THE TEXT OF THE DOCUMENT TITLE HERE

1. Ongoing Process: System design is an ongoing process that starts


from the inception stage and progresses throughout the
development lifecycle. 2.
2. Transition from Concept to Implementation: It involves
transitioning from understanding "what is to be built" to determining
"how it is to be built.“
3. User Interaction: Software engineers engage in meetings with
users, read preliminary documents, and participate in system-level
reviews and walkthroughs to gain a deeper understanding of the
system.
Please
Topic 6enter title
System Analysis
FILL IN THE TEXT OF THE DOCUMENT TITLE HERE

4. Process Modeling: Software engineers are responsible for


preparing process models that focus on designing the software
resources, such as programs and procedures required for the
proposed system.
5. Detailed Specifications: The focus is on developing detailed
specifications for program modules, including specifications and
procedures to meet user interface and data design specifications.
6. Application Area Knowledge: Software engineers should be well-
versed in the application area to design various software functions
and specifications effectively.
Please
Topic 6enter title
System Analysis
FILL IN THE TEXT OF THE DOCUMENT TITLE HERE

7. Performance Requirements: Software engineers ascertain


system and sub-system performance requirements, ensuring that
the designed software meets the specified criteria.
8. Participation in Architecture Development: Software engineers
can actively participate in the development of system architecture,
contributing to the overall design of the system and its components.

You might also like