0% found this document useful (0 votes)
72 views54 pages

SE Practical

The document provides a software requirements specification for a stress management techniques application. It outlines the purpose, scope, definitions, and overview of the application. The application aims to provide stress reducing techniques, advice from experts and other users, and allow users to connect with personal therapists. It intends to reduce users' time, money and provide advice from experienced people globally.
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
72 views54 pages

SE Practical

The document provides a software requirements specification for a stress management techniques application. It outlines the purpose, scope, definitions, and overview of the application. The application aims to provide stress reducing techniques, advice from experts and other users, and allow users to connect with personal therapists. It intends to reduce users' time, money and provide advice from experienced people globally.
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 54

.

....,, ,.__ ________________________ __ ______ ____ _____ ________________________.,.......

C.K.PITHAWALLA COLLEGE OF
ENGINEERING & TECHNOLOGY,
SURAT.

CERTIFICATE

PATEL SHRADDHA B.
This is to certify that Mr./Miss ............................................. .

5th
of•••••••••••••••••••••••••• COMPUTER
seni•••••••••••••••••••••••••••••••••••••••••••••••• bran.ch

- 190090107047
Roll No •••••••••••••••••Enrollrnent No ••••.•••••••
I
••••••••••••••••••••••••••••
I

has satisfactorily completed his/her termwork i n

Software Engineering (3150711)


..............................................................................................

Date:-•••••••••••••••••

Sign of Teacher Head of the Deparment

·~~-------------------------------------------------------------------,..,,_·
Gujarat Technological University
C. K. Pithawalla College of Engineering and
Technology, Surat
Academic Year : 2021-22
B.E. - III Semester –V (Computer Engineering)
Subject Name: Software Engineering (3150711)

Practical List

INDEX

Sr.No. Problem Statement Date Remarks

1. Software Development Life Cycle 24/06/2021

2. Requirement Analysis and Specification 08/07/2021

3. Design Analysis 05/08/2021

4. Software Project Management 12/08/2021

5. Coding and Testing 26/08/2021

6. Agile Tools 02/09/2021

7. DevOps 16/09/2021

Faculties Name:
Prof. Vishruti V. Desai ,Prof. Unnati S.Shah
Practical 1
Group Members:
 Patel Shraddha Babubhai (Enrollment No: 190090107047)
 Thesia Krishnaben Shaileshbhai (Enrollment No: 190090107068)

Design Software Development Life Cycle (SDLC) model and analyze various
activities conducted as a part of various phases. For each SDLC phase, identify the
objectives and summaries outcomes.:

Name of Application: Stress Management Techniques


SDLC Model: Incremental Model

Phase of Incremental Model with respect to our project:

1. Requirement analysis:
Todays sophisticated lifestyles, people can’t dare their own problems. They cannot share their
problems or emotions with their families or friend because they are not comfortable with
them. Especially after the pandemic of covid-19 people forgot their patience level, forgiving
nature, mental health. For solving this situation we though to make an application through
which a person can freely share their frustration and their sentiments to the people who faces
the same problems.

2. Design & Development:


We have to make an application from people get to know about their solutions of their
problems. We can suggest them an ideas about the diverting their thoughts and include the
positive vibes around them.

3. Coding:
We use C, Java, PHP, C++ etc. as per requirements.

4. Implementation:
We try our best to solve the maximum issues of people and make them happier.
Software Requirements Specifications

Software Requirements Specification (SRS)

The document in this file is an annotated outline for specifying software


requirements, adapted from the IEEE Guide to Software Requirements
Specifications (Std 830-1993).

Tailor this to your needs, removing explanatory comments as you go along.


Where you decide to omit a section, you might keep the header, but insert a
comment saying why you omit the data.

Page 1 of 14 f
Software Requirements Specifications

SOFTWARE REQUIREMENTS SPECIFICATION

STRESS MANAGEMENT TECHNIQUES


Subject : Software Engineering

Subject Code : 3150711

Sr Enrollment Name
No Number
1 190090107047 Patel Shraddha Babubhai
2 190090107068 Thesia Krishna Shaileshbhai

Faculty Name :
Signature : Date: ( / / )

Page 2 of 14 f
Software Requirements Specifications

Table of Contents

1. Introduction 4

1.1 Purpose 4
1.2 Scope 4
1.3 Definitions, Acronyms, and Abbreviations 4
1.4 References 4
1.5 Overview 5

2. General Description 5

2.1 Product Perspective 6


2.2 Product Functions 6
2.3 User Characteristics 6
2.4 General Constraints 6
2.5 Assumptions and Dependencies 7

3. Specific Requirements 8

3.1 Functional Requirements 8


3.1.1 Functional Requirement 1 8
3.1.2 Functional Requirement 2 8
3.2 External Interface Design 8
3.3 Performance Requirements 11
3.4 Design Constraints 11
3.4.1 Standards Compliance 11
3.4.2 Hardware Limitation 12
3.5 Software System Attributes 12
3.5.1 Reliability 12
3.5.2 Availability 12
3.5.3 Security 12
3.5.4 Maintainability 12
3.5.5 Portability 12
3.6 Other Requirements 13
3.6.1 Logical Database Requirements 13

4. Appendices 14

Page 3 of 14 f
Software Requirements Specifications

1. Introduction

The following subsections of the Software Requirements Specifications (SRS) document


should provide an overview of the entire SRS. The thing to keep in mind as you write this
document is that you are telling what the system must do – so that designers can ultimately
build it. Do not use this document for design!!!

1.1 Purpose

 The software is basically for maintaining the stress of people.


 The software provides all kind of stress reducing techniques.
 Providing free time and stress distracting advices.
 Providing suggestions from the experts as well as other users.
 Providing personal therapist as their requirements.

1.2 Scope

 The proposed software product is the Stress Management Techniques (SMT). The
system will be used to get the information from the users and then providing the
suggestions for stress relief.
 Users can get advice instantly from therapist through this system instead of meeting at
the therapist’s place.
 The intentions of the system are to reduce time of users as well as money and user get
advices from the experienced people surrounding world.

1.3 Definitions, Acronyms, and Abbreviations

 System User (customer) :- A person who is using or operating the system.


 System Admin :- System Admin is the one who is responsible for managing the whole
system.
 System Agent :- System Agent helps us to find accommodation and manages payment
according our packages and has contact with all hotels and transport companies.

Acronyms:
SMT - Stress Management Technique
SRS – Software Requriments Specification
DBMS-Data Base Management System

1.4 References

 https://play.google.com/store/apps/details?id=com.bearpty.talklife
 https://www.webmd.com/balance/stress-management/stress-
management#:~:text=The%20ones%20that%20focus%20on,people%20and%20has%
20many%20benefits.
 https://www.mindtools.com/

Page 4 of 14 f
Software Requirements Specifications

1.5 Overview

Our System is based on Stress Management Technique. Now a days due to covid-19 many
peoples have stress for their work load, family problems, finanancial problem and many more.
We observed that many people were suffering from stress and depression. From that we
decide to make a system for solving people’s problem. In our system user can freely share
their problems and get solutions from system and other users also.

The main aim of project is to develop a software which is easily accessible by the public.
Project’s main idea is to implement an automated software application to solve users
problems.

Page 5 of 14 f
Software Requirements Specifications

2. General Description

2.1 Product Perspective

 Stress Management system is a like Talk Life system. In our system we have ask some
questions to user and analysis their problems in that system there is no any question
ask to user.
 In both system there is a other users can also share their experience with each other.
 System also gives schedule like exercise time , a good and balanced died , enough
sleep time , manage their personal time ,time for fun and relaxation, listening music
and many more.
 The expert advice like Psychiatrist are also suggest to user and give some special
therapist to user.

2.2 Product Functions

The system functions can be described as follows:

Registration :
When a user is log-in, the system checks to see if the user is already registered with the
system or not.
 If he/she is, his/her user name is entered into the system. Otherwise a new user name
is given to the user.
 The user’s information such as age, occupation and habbit is also entered into system.
Process :
System ask questions to user and analysis their problems and give suggestion or schedule to
user. Also other user can give their suggestions or share their experience.
Log-out :
When user log-out, the system should remove their data and current status.

2.3 User Characteristics

 System can be use by a power user and casual user.


 Power user manage the data of database.He/She is only one who sees the hall data of
system and also update the system among with some time period.
 When casual user only sees their infomation and other users information. They do not
setup/manage the database management system.
 Any user can use the system. There is no need to be a user in specific field. And also
they cane access from any where.

2.4 General Constraints

 For system update,every month system must be updated.


 It requires high language like C, Java, PHP, C++.
 Implement the database at least using a centralized database management system.

Page 6 of 14 f
Software Requirements Specifications
2.5 Assumptions and Dependencies

Assumptions :
 It is assumed that the user have their own problems so they get satisfaction answer of
their questions.
 It is assumed that the user can easily understand the entire system easily.
Dependencies :
 If the user writes their problems properly then the system responds correctly, by this
the system is depend on the user.
 The system is updated time to time more user are interested to use the system.

Page 7 of 14 f
Software Requirements Specifications

3. Specific Requirements

3.1 Functional Requirements

3.1.1 User Registration


3.1.1.1 Collect detail about user
3.1.1.2 Ask question to user

3.1.2 User’s Solution


3.1.2.1 Give daily Scheduel
3.1.2.2 Remind regular exercise and medicine
3.1.2.3 Provide self care
3.1.2.4 Talk someone to district their self

3.1.3 Expert Advice


3.1.3.1 Suggest their near by experts
3.1.3.2 Get daily scheduel

3.1.4 Suggestions
3.1.4.1 Viwer’s experience
3.1.4.2 Common solutions
3.2 External Interface Design

3.2.1 Login page

Page 8 of 14 f
Software Requirements Specifications
3.2.2 More Information

3.2.3 Common Suggestions

Page 9 of 14 f
Software Requirements Specifications
3.2.4 Advice given by server

3.2.5 Expert Advice

Page 10 of 14 f
Software Requirements Specifications
3.2.6 Viwer’s Suggestios

3.3 Performance Requirements

Mainly the product requires efficient performance and can easily accessable on any device. The other
requirements include:
 The product will be based on local server.
 The product will take initial load time.
 The performance will depend upon hardware componenets.
 Different database for employee.
 Private data of user will be secure.

3.4 Design Constraints

Specify design constraints that can be imposed by other standards, hardware limitations, etc.

3.4.1 Standards Compliance

Specify the requirements derived from existing standards or regulations. They might include:
(1) Report format
(2) Data naming
(3) Accounting procedures
(4) Audit Tracing

For example, this could specify the requirement for software to trace processing activity.
Such traces are needed for some applications to meet minimum regulatory or financial
standards. An audit trace requirement may, for example, state that all changes to a payroll
database must be recorded in a trace file with before and after values.
Page 11 of 14 f
Software Requirements Specifications

3.4.2 Hardware Limitation

 It requires internet connection.


 It reuires selecting tool like mouse or touchpad.
 It require gadgets which has minimum version of Android 7/Windows 7/Mac OS 10.7

3.5 Software System Attributes

There are a number of attributes of software that can serve as requirements. It is important
that required attributes by specified so that their achievement can be objectively verified. The
following items provide a partial list of examples. These are also known as non-functional
requirements or quality attributes.

These are characteristics the system must possess, but that pervade (or cross-cut) the design.
These requirements have to be testable just like the functional requirements. Its easy to start
philosophizing here, but keep it specific.

3.5.1 Reliability

The system should work reliably, with automatic backup and recovery features. In case of
unexpected termination of a session, the unsaved data should be recovered without loss and
displayed to the respective users for saving into the system or continuing with the work. At
any time, audit file and all data base and mailing information are required to be updated in the
backup

3.5.2 Availability

The entire system should be available round the year, except for aperiodic maintenance. The
maintainance period should be pre-scheduled and short. The users should be reminded of the
unavaibility period in advance.

3.5.3 Security

Specify the factors that would protect the software from accidental or malicious access, use,
modification, destruction, or disclosure. Specific requirements in this area could include the
need to:
 The whole system secured only admins can access all the data.
 This system will use HTTPS because of this product this is more secure.
 This system will use secured POS system.

3.5.4 Maintainability

The document should be easy for the users who execute the system day to day. For the
developers who wish to edit or develop further, and for the personal who is in charge of the
maintenance.

3.5.5 Portability

Page 12 of 14 f
Software Requirements Specifications

 This system will be easily portable for any windows or IOS based system .
 The system should support new versions of the related browsers.
 The administrative and server technologies should be standard and supported and supported
by most platforms.

3.6 Other Requirements

3.6.1 Logical Database Requirements

Here in ER diagram the flow of our whole system is there. All logical requirements are shown in
this diagram with keys and different attributes.

Page 13 of 14 f
Software Requirements Specifications

4. Appendices

SMT stands for Stress Management Techniques.It will also help to user to solve their problems
freely and make sure that user will save their life.If we like to make this type of website and
app,that have cost around 10,000-20,000$. It has one suggestion box where users can suggest to
software developer which kind of changes they want.It will help to developer to fulfill user’s
need.

Page 14 of 14 f
Practical : 3
Design Analysis

3.1 E-R Diagram


3.2 Design UML Diagrams
3.2.1 Use Case Diagram
3.2.2 Class Diagram
3.2.2 Sequence Diagram

-
3.2.3 Activity Diagram
3.2.3 State Diagram
3.3 Design DFD
Level – 0
Level – 1
Practical – 4
Software Project Management

Project Management Tools :-

1. BaseCamp :
Basecamp is the preferred tool for thousands of project management teams, who enjoy its
modern social media-like interface and carefree team collaboration features.

Top Features:

• Projects to manage multiple users’ work


• Message boards for discussing new projects or ideas
• In-app collaboration with the team
• Reporting on project performance
• Separate dashboard for showing to clients
• Email and desktop notifications
What’s special about this tool :
Compared to some other project management alternatives, Basecamp doesn’t charge you per
person, and it’s free for teachers and students.

2. Asana :

Asana combines elements of project management, file storage, and collaboration and helps to
manage projects across a team without email.

Top Features:

• Tasks and team assignment


• Projects roadmaps and timelines
• Milestones and team progress
• File and track bug reports and sprints.
• Project dashboards to get a quick overview

What’s special about this tool:


Asana is a really easy-to-use tool with a simplistic layout ideal for small teams with simple
projects.

3. Scoro :
Scoro is a comprehensive solution that combines all the features you might need in project
management software: projects & tasks, contact management, quotes, team collaboration,
billing, and reporting.

Top Features:

• Projects with sub-tasks and deadlines


• Real-time KPI dashboard
• Shared team calendar & meeting scheduling
• Contact management
• Time tracking and billing for work
• Detailed reports on project progress and finances
• Quoting and invoicing with pre-set templates
What’s special about this tool :

Scoro helps to streamline your entire work progress, so you don’t need to use a lot of
different tools for every task. All your important information is stored in one central place.

4. Citrix Podio :
Podio is a flexible and highly customizable online hub for work and team communication.

Top Features:

• Assign tasks, attach files, and discuss details within the solution
• Share encrypted & large files
• Automate the sales pipelines and project budget tracking
• Get an overview of the company with a visual dashboard

What’s special about this tool :

Podio’s workflows feature enables you to add if-this-then-that logic to Podio apps. For example,
instruct your app to create a task or comment.
5. Active Collab :
Active Collab is a project management software helping your team stay organized while you
outgrow email.

Top features:

• Time tracking and invoicing


• Gantt-like timeline for planning
• Kanban cards
• A shared team calendar for collaboration
.
What’s interesting about this tool:

Active Collab is especially great for collaboration, with functions like collaborative text
editing and @mentions for communication.

6. WorkZone :
Workzone was built by experienced ad executives who wanted to help agencies and creative
teams get visibility into all of their work.
Top features:

• Personalized, individual to-do lists


• Create subtasks and task dependencies
• Set permissions for specific users (including clients) to access projects, tasks, and
files
• Quickly see statuses with Gantt charts
• Assign people to more than one task

What’s special about this tool:

Workzone has many powerful features but is simpler to use than more complex tools.
Practical – 5
Coding and Testing

5.1 Implementation :

5.2 Examine various code analysis tools and prepare a report :

1. Raxis

Raxis does one better than automated tools that often discover false findings that waste time
and effort.

Raxis scopes an amount of time that works best for your company’s code and assigns a
security-focused former developer to analyze your code for both general security and
business-logic vulnerabilities.

Raxis communicates throughout to be sure your input is used within the code review, and
they provide a report that details each finding with screenshots and remediation advice. A
high-level summary that can be provided to management and a debriefing call are also
included.

2. SonarQube

SonarQube is a household name in Code Quality and Code Security, empowering all
developers to write cleaner and safer code. With thousands of automated Static Code
Analysis rules in more than 25 programming languages, while integrating directly with your
DevOps platform, SonarQube is your teammate to enhance your development workflow and
guide your teams.

SonarQube fits with your existing tools and proactively raises a hand when the quality or
security of your codebase is at risk.

3. PVS-Studio
PVS-Studio is a tool for detecting bugs and security weaknesses in the source code of
programs, written in C, C++, C#, and Java. It works in Windows, Linux, and macOS
environment.

It is possible to integrate it into Visual Studio, IntelliJ IDEA, and other widespread IDE. The
results of the analysis can be imported into SonarQube.

4. reshift

Reshift is a SaaS-based software platform that helps software development teams identify
more vulnerabilities faster in their own code before deploying to production.

Reducing the cost and time of finding and fixing vulnerabilities, identifying the potential risk
of data breaches, and helping software companies achieve compliance and regulatory
requirements.

5. Embold

Embold is an intelligent software analytics platform that supports developers and teams in
building higher quality software in less time, by speeding up code reviews.

It automatically prioritizes hotspots in the code and provides clear visualizations. With its
multi-vector diagnostic technology, it analyses software from multiple lenses, including
software design, and enables users to manage and improve their software quality
transparently.

6. SmartBear Collaborator

SmartBear Collaborator is a code review tool that is suitable for remote as well as co-located
teams. It has comprehensive review capabilities to review various documents like design,
requirements, documentation, user stories, test plans, and source code.
It can be integrated with GitHub, GitLab, Bitbucket, Jira, Eclipse, Visual Studio, etc. For the
proof of review, it offers the features of electronic signatures. It provides detailed reports.
The tool can be used by businesses of any size.

SmartBear contains many more features like tracking & managing defects, customizing
review templates, collaborating on software artifacts & documents, etc. It can be tried for free
and the price starts at $554 per year for a 5 user pack.

5.3 Examine Load Runner and Win Runner and prepare a comparative
analysis.

1. Load Runner

LoadRunner is a software testing tool from Micro Focus. It is used to test applications,
measuring system behavior and performance under load. LoadRunner can simulate
thousands of users concurrently using application software, recording and later analyzing
the performance of key components of the application.
LoadRunner simulates user activity by generating messages between application
components or by simulating interactions with the user interface such as keypresses or
mouse movements. The messages and interactions to be generated are stored in scripts.
LoadRunner can generate the scripts by recording them, such as logging HTTP requests
between a client web browser and an application's web server.
 Features of LoadRunner:

 Interactive User Transaction Simulation.


 Interactive User Transaction Simulation.
 Mobile Testing.
 Cloud Testing.
 Continuous Testing.
 Root Cause Analytics.
 Accurate Scalability Expense Prediction.
 Refined user interface.

 Advantages:
 Determines root cause of application performance issues
 Accurate detection of system, end user, and code-level bottlenecks
 Minimizes cost of application downtime stemmed from performance issues
 Allows performance testing of existing legacy applications with new
technologies
 Enables testers to test for mobile applications
 Offers effective tool utilization tracking
 Gives users shorter test cycles to expedite application delivery
 Browser-based access to global test resources
 Optimal usage of load generator farm

 Disadvantages:
 Debugging capability needs improvement
 Extremely expensive
 Uses a lot of memory and crashes if the system cannot meet its computing
requirements
 May have compatibility issues
 Needs improvement in dump analysis and the subsequent results forwarding
 Usage license based on the number of virtual users
 Limited load generation capacity

2. WinRunner:

HP WinRunner software was an automated functional GUI testing tool that allowed a user to
record and play back user interface (UI) interactions as test scripts.
As a functional test suite, it worked with HP QuickTest Professional and supported
enterprise quality assurance. It captured, verified and replayed user interactions
automatically, in order to identify defects and determine whether business processes worked
as designed.
The software implemented a proprietary Test Script Language (TSL) that allowed
customization and parameterization of user input

 Features of WinRunner:

 Functionality testing tool


 Supports C/s and web technologies such as (VB, VC++, D2K, Java, HTML,
Power Builder, Delphe, Cibell (ERP))
 To Support .net, xml, SAP, Peoplesoft, Oracle applications, Multimedia we
can use QTP.
 Winrunner run on Windows only.
 Xrunner run only UNIX and linux.
 Tool developed in C on VC++ environment.
 To automate our manual test win runner used TSL

 Advantages:
 Reduces time consumption and tediousness.
 Reduces the amount of investment in human resources.
 Roots out most of the serious bugs.

 Disadvantages:

 Doesn’t apply for Stress or Load or Scalability Testing.


 Doesn’t Support .net Programming.
 Tester should have programming knowledge/experience.
 It doesn’t support multimedia systems.
Practical – 6
Agile Tools

JIRA
JIRA is a tool developed by Australian Company Atlassian. This software is used for bug
tracking, issue tracking, and project management. The JIRA full form is actually inherited
from the Japanese word “Gojira” which means “Godzilla”. The basic use of this tool is to
track issue and bugs related to your software and Mobile apps.

It is also used for project management. The JIRA dashboard consists of many useful
functions and features which make handling of issues easy.
JIRA is a cross-platform issue and bug tracking software with advanced project management
capabilities and features.

What is JIRA used for?


Jira software can be used for the following purposes:
 Requirements and Test case management
 In Agile Methodology
 Project Management
 Software Development
 Product Management
 Task Management
 Bug Tracking
Features:
 Create user stories and issues, plan sprints
 Distribute tasks across your software team.
 Prioritize and discuss your team's work e Centralize your team communication
 See real-time reporting on your team's work
Practical – 7

DevOps
Study of any two Open source tools in DevOps for Infrastructure Automation, Configuration
Management, Deployment Automation, Performance Management, Log Management,
Monitoring.

1. Chef :

 Chef is an open-source technology developed by Opscode. Adam Jacob, co-founder


of Opscode is known as the founder of Chef. This technology uses Ruby encoding to
develop basic building blocks like recipe and cookbooks. Chef is used in
infrastructure automation and helps in reducing manual and repetitive tasks for
infrastructure management.
 Chef have got its own convention for different building blocks, which are required to
manage and automate infrastructure.
Infrastructure Automation:

 Infrastructure management has come a long way. (Mostly) gone are the days of
manual configurations and deployments, when using SSH in a “for” loop was a
perfectly reasonable way to execute server changes. Automation is a way of life.
 Configuration management tools like Chef, Puppet, and Ansible — once on the
bleeding edge — are now used by most enterprises. With infrastructure automation,
you get a central place for managing all of your systems, networks, and devices —
both on-prem and in the cloud — so you can deploy infrastructure and applications
faster, without sacrificing reliability.
 Using Chef to automate infrastructure management
 If you want to treat your infrastructure as code, a configuration management platform
like Chef makes it possible. You use prewritten code, or Chef “recipes,” to define
your
 infrastructure, security policies, and system dependencies, and Chef gives you a
central place to manage it all.
 Chef automatically detects and repairs configuration drift, and keeps systems in
compliance. You can roll out security changes and spin up VMs, cloud instances, and
containers in minutes.
 Using a tool like Chef means gaining visibility, consistency, and repeatability into
your systems, so you can stop focusing on tasks that keep the lights on, and start
working on the projects that move your company forward.

Configuration Management:

 When configuration is code, DevOps teams work more efficiently, enabling


continuous automation across all IT processes.
 Managing multiple virtual machines requires proper configuration—loading them
with the right software and making sure that software can run. But how can you
manage infrastructure when the number of machines you’re responsible for changes
on a daily basis?
 The only way to turn configuration management into a competitive advantage instead
of disruptive churn is to keep environments consistent.
 Chef Automate leverages Chef, Habitat, and InSpec to create a pipeline that can cross
both internal and external boundaries, standardizing environments and processes
locally within the data center and up in the cloud.
 As a result, you get a dynamic environment that’s stable no matter how complicated
your configurations are. When your application deployment and infrastructure
changes move at the same pace, your entire IT organization functions better.
 In fact, environmental configurations are foundational to application and business
success. A DevOps team that turns configuration into code can leverage the same
tools and processes you use on your applications to efficiently and successfully
prepare environments to run applications.

Deployment Automation:
 Chef Habitat supports multiple automated deployment patterns. Applications built with
Chef Habitat are published to and promoted through “channels” such as ‘dev’, ‘current’,
‘release’, etc. These enable per-channel automated deployments to make continuous
delivery a snap!
 Users can define the update strategy they would like to use during the provisioning
processes. Supported deployment automation options and patterns include:
 Automated Rollback – return a system to its prior state
 Automated Roll-Forward – redeploy the prior version of a release
 At-once – upgrades all instances in parallel
 Rolling – sequence upgrades across a group
 Blue-green – maintain two identical production environments so that one can
be used for final testing
 Canary – deploy to a subset of targets, after validation deploy then to the full
group
 Feature-flag – control the rollout of new features to subsets of users

Log Management:
Chef Automate 2.0 uses systemd. Log management is performed according to the
configuration defined for the system service journald.
 Viewing Logs:
 To view the logs, you can run : journalctl -u chef-automate
 To follow the logs in Realtime : journalctl -u chef-automate -f
 For information on changing the output, please refer to the man page or run:
journalctl –help

 Configuring Log Level :


 You can configure Chef Automate log level for all services by creating a TOML
file and configuring the log level. By default, each service will initialize at the
“info” level but can be any of ‘debug, ‘info’, ‘warning’, ‘panic’, or ‘fatal’.
 [global.v1.log]
 level = "debug"
 Then run chef-automate config patch to deploy your change.

 Configuring Log Rotation and Retention:


 Log rotation and retention settings are managed at a system level using journal. At
this point, journal does not support log retention policies at a granular level for
units within itself. See the man page for more configuration options in
/etc/system/journald.conf.

Monitoring:

 Use the authenticated https endpoint /status to monitor your Chef Automate installation.
 Checking the Status Endpoint
 The authenticated endpoint /status provides status for the overall Chef Automate
installation as well as for its component services. When all Chef Automate component
services are up, /status returns a response code of 200. Otherwise, /status returns 500.
 The status of a service can be OK, UNKNOWN, or CRITICAL, and is reflected in the
JSON output:
{
"ok": false,
"service_status": [{
"service": "deployment-service",
"status": "OK"
},
{
"service": "config-mgmt-service",
"status": "UNKNOWN"
},
{
"service": "ingest-service",
"status": "CRITICAL"
},
]
}

To use/status,set up an authentication token for use with your monitoring systemby


following the steps below:

1. Generate a token:
chef-automate iam token create --id <token-id> <token-name>

2. Create a policy that allows your created token to access the /status endpoint.
curl -k -H "api-token: <admin-token>" -d '{ "name": "Monitoring", "id":
"monitoring", "members": [ "token:<token-id>" ], "statements": [ { "effect":
"ALLOW", "actions": [ "system:status:get" ], "projects": [
"*" ] } ] }' -X POST
https://automate.example.com/apis/iam/v2/policies?pretty

3. Test that your token and policy give you access to the / status endpoint by running the
following command:
{
"ok": true,
"services": [
{
1. "name": "deployment-service",
2. "status": "OK"
},
{
3. "name": "backup-gateway",
4. "status": "OK"
},
{
5. "name": "automate-postgresql",
6. "status": "OK"
},
]
}

4. After establishing your authentication token and confirming access, connect to


the/status endpoint.
2. Docker :

• Docker is an open platform for developing, shipping, and running applications. Docker
enables you to separate your applications from your infrastructure so you can deliver
software quickly. With Docker, you can manage your infrastructure in the same ways you
manage your applications. By taking advantage of Docker’s methodologies for shipping,
testing, and deploying code quickly, you can significantly reduce the delay between writing
code and running it in production.

• Docker uses a client-server architecture. The Docker client talks to the Docker daemon,
which does the heavy lifting of building, running, and distributing your Docker containers.
The Docker client and daemon can run on the same system, or you can connect a Docker
client to a remote Docker daemon. The Docker client and daemon communicate using a
REST API, over UNIX sockets or a network interface. Another Docker client is Docker
Compose, that lets you work with applications consisting of a set of containers.

Infrastructure Automation:

 The entire process of how is Docker used for cloud infrastructure automation starts
with the knowledge of how is Docker used for cloud infrastructure automation? Once
you understand how is Docker used for cloud infrastructure automation, then you can
look at a range of different problems that may be faced by businesses around the
world.
 By adopting the standards of the market, such as VMWare Helion, and the principles
of cloud infrastructure automation, such as application-centric programming and
elastic web frameworks, you will be able to use the basic knowledge of these
technologies to tailor the application to fit the needs of your business. Once you have
mastered these techniques, then you will be able to automate the processes to suit
your business.
 In the same way that VMWare Helion has developed its own ecosystem and
applications, the cloud infrastructure automation project also has an application
programming interface or API that it has created for itself.
 In addition, a number of these applications have been developed to provide end-users
with the ability to automate their own applications.
 The automation suite itself has very few requirements for end-users, and there is a
range of automated solutions available.
 The fact that the whole process can be carried out entirely from a web browser makes
it possible for a business to develop and manage the automation process from the
comfort of their own office, and from a position of relative ease.
 The real issue for those who are looking at how is Docker used for cloud
infrastructure automation is the ability to integrate the process. While the underlying
technologies of containers and orchestration make it possible to automate various
aspects of a certain set of applications, only a small number of these technologies
support the capability to integrate other services and systems through an application.
 If you are interested in how is Docker used for cloud infrastructure automation, and
automation of your application, you should be looking at using the available services
of the automation suite for your system. VMWare’s Helion platform is just one
example of this available service.

Deployment Automation:

 Docker – run Docker containers via UCD component templates and map Docker
images to components within UrbanCode Deploy (requires Docker Source Config
plugin)
 Docker Registry – Source plugin – import versions from registry – traceability,
governance, trusted sources
 Docker Compose – configure a single component in UCD and use it to deploy a
Compose file with many services. Create components and corresponding inventory
for each of those automatically.
 IBM Container Service on Bluemix – using the Cloud Foundry IBM Containers
command line utility, you can interact with containers running in Bluemix and
coordinate crosscloud or environment deployments
 Kubernetes – interact with Kubernetes sources within the UCD interface and kick off
deployments across environments. Our partner Apprenda (PaaS provider) has a
similar plugin.

Log Management:
 Log management is important for making development decisions, conducting root cause
analysis when something goes wrong, demonstrating security compliance, and much
more.
 When you’re working with containerized apps in Docker, however, logging becomes a bit
more complex than it is with traditional methods. You need more data (compared to
hardware-centric apps) to get to the heart of an issue.
 Docker includes logging drivers in the platform to give you access to performance data. It
also enables logging driver plugins for those who would like to integrate another logging
tool. Using Docker’s logging capabilities, you can view log data at both the daemon
process level and the container level.
 Logging Methods in Docker
 For all of the advantages Docker containers offer to DevOps teams, they also
change how log management is done. In Docker, effective logging includes log
events from the host OS, the application, and the Docker platform.
 There are several methods for capturing logs in a Docker environment, each with
their own advantages. Which one works best for you will depend on your
application environment and unique needs.
 Application-based logging
 An application inside a Docker container can use a logging framework to manage
the logging process. This allows a user to bypass Docker and the host OS, logging
events to a remote server, and it offers more control over the logging event.
 However, it also adds significant overhead to the app processes. If you can benefit
from using the app’s logging framework and do not want to add log functionality
to the host, this might be an effective method for you.
 Data volumes for log retention
 When a container shuts down, it loses its data. To retain log events, those events
need to be sent elsewhere. This can be an external logging service, or it can be a
data volume: a directory within the container that is linked to the host machine.
 Saving log events to a data volume helps ensure that log data doesn’t get lost
when the container shuts down. It also makes the log data available for sharing
with other containers.
 Docker logging driver
 Docker included logging drivers on their platform, and these drivers offer some
performance advantages over other methods because they bypass the need to read
or write from log files. Instead, the logging driver reads events straight from the
container’s output and forwards them to the host.
 This may not, however, be a reliable method for many users, as it does not allow
for log parsing.

 Detailed logging container


 You can deploy a dedicated container to manage log events within the Docker
environment. This eliminates dependency on a host for log events and scales
automatically without requiring any additional configuration.

Monitoring:

 Monitoring Docker, no matter if used purely or integrated into one of the systems
mentioned above, should include aspects of health, performance, and resource usage
of the containers. Failures in the daemon directly influence the health of the system as
a whole. There are many ways to monitor basic Docker indicators.
 Docker Stats: The easiest tool to use and monitor Docker containers is Docker Stats,
which is built into the actual Docker CLI (command line interface). Replicating much
of the style known from famous Linux tools like top or iotop, it provides information
about container names, CPU, memory and io (block device and network) usage.
9/25/2021

Software Design :

 Software design is a model of software which translates the


requirements into a finished software product in which the details about
SOFTWARE ENGINEERING software data structure, architecture, interface and components that are
necessary to implement the system are given.

 Software design is at the core of software engineering and it is applied


irrespective of any process model.
Subject Code: 3150711  Software design is important to assess the quality of software,
PATEL SHRADDHA – 190090107047 because design is the only way that we can accurately translate the
user requirements into the finished software product.
THESIA KRISHNA - 190090107068
C.K Pithawala College of Engineering and Technology,
Surat, Gujarat State, India
Website: https://ckpcet.ac.in/

Translating analysis model into the design model :

UNIT 5 :

SOFTWARE DESIGN

Data design • It transforms the information domain model created during analysis into the data
Content : structures.
• Data Object, relationship and data dictionary provide the basis for data design.
 Design Concept and Design Principles

 Architectural Design
Architectural • It defines the relationship between major structural elements of the software.
 Component Level Design design • It can be derived from the system specification, the analysis model and the
• Function Oriented Design interaction of subsystems defined within the analysis model.
• Object Oriented Design
• MS Visio Tool
• It describes how the software communicates within itself, with systems that
 User Interface Design Interface interoperate and with humans who use it.
design
 Web Application Design • Interface is required when something flows. Hence, DFD and CFD provide much
of the information required for interface design.

Component • It transforms structural elements of the software architecture into procedural


level design description of software components.
• PSPEC, CSPEC and STD provide information for component design.
9/25/2021

 Patterns
 A design pattern describes a design structure and that structure solves a particular design
problem in a specified content.

 Modularity
 A software is separately divided into name and addressable components. Sometime they
are called as modules which integrate to satisfy the problem requirements.
 Modularity is the single attribute of a software that permits a program to be managed easily.

DESIGN CONCEPT  Information hiding


 Modules must be specified and designed so that the information like algorithm and data
presented in a module is not accessible for other modules not requiring that information.

 Functional independence
Design Concepts :  The functional independence is the concept of separation and related to the concept of
modularity, abstraction and information hiding.
The software design concept provides a framework  The functional independence is accessed using two criteria i.e Cohesion and coupling.
implementing the right software.
 Cohesion
• Abstraction - data, procedure, control • Cohesion is an extension of the information hiding concept.
• A cohesion module performs a single task and it requires a small interaction with the
• Architecture - the overall structure of the software other components in other parts of the program.
• Patterns - “conveys the essence” of a proven design solution
 Coupling
• Modularity - compartmentalization of data and function • Coupling is an indication of interconnection between modules in a structure of software.
• Information Hiding - controlled interfaces

• Functional Independence - single-minded function and low coupling

• Refinement - elaboration of detail for all abstractions

• Refactoring - a reorganization technique that simplifies the design

 Abstraction  Refinement
 A solution is stated in large terms using the language of the problem environment at the  Refinement is a top-down design approach.
highest level abstraction.  It is a process of elaboration.
 The lower level of abstraction provides a more detail description of the solution.  A program is established for refining levels of procedural details.
 A sequence of instruction that contain a specific and limited function refers in a procedural  A hierarchy is established by decomposing a statement of function in a stepwise manner till
abstraction. the programming language statement are reached.
 A collection of data that describes a data object is a data abstraction.

 Refactoring
 Architecture  It is a reorganization technique which simplifies the design of components without changing
 The complete structure of the software is known as software architecture. its function behavior.
 Structure provides conceptual integrity for a system in a number of ways.  Refactoring is the process of changing the software system in a way that it does not change
 The architecture is the structure of program modules where they interact with each other in the external behavior of the code still improves its internal structure.
a specialized way.
 The components use the structure of data.
 The aim of the software design is to obtain an architectural framework of a system.
 The more detailed design activities are conducted from the framework.
9/25/2021

Architectural Design :

 Software Architecture is a structure of systems which consists of various


components, externally visible properties of these components and the
inter-relationship among these components.

 Importance of Software Architecture :


 Software architecture gives the representation of the computer based
system that is to be built. Using this system model even the
DESIGN PRINCIPAL stakeholders can take active part in the software development
process. This helps in clear specification/understanding of
requirements.
 Some early design decisions can be taken using software
architecture and hence system performance and operations remain
under control.
 The software architecture gives a clear cut idea about the computer
based system which is to be built.

Design Principals : Architectural Design Representation :


 The design process should not suffer from “tunnel vision.”
 Architectural design can be represented using the following models :
 The design should be traceable to the analysis model.

 The design should not reinvent the wheel. • Structural model: Illustrates architecture as an ordered collection of program
components.
 The design should “minimize the intellectual distance” between the software and the • Dynamic model: Specifies the behavioral aspect of the software architecture and
problem as it exists in the real world. indicates how the structure or system configuration changes as the function
changes due to change in the external environment
 The design should exhibit uniformity and integration.
• Process model: Focuses on the design of the business or technical process,
 The design should be structured to accommodate change. which must be implemented in the system
• Functional model: Represents the functional hierarchy of a system
 The design should be structured to degrade gently, even when aberrant data, events,
• Framework model: Attempts to identify repeatable architectural design patterns
or operating conditions are encountered.
encountered in similar types of application. This leads to an increase in the level of
 Design is not coding, coding is not design. abstraction.

 The design should be assessed for quality as it is being created, not after the fact.

 The design should be reviewed to minimize conceptual (semantic) errors.

Architectural Style :

 The architectural model or style is a pattern for creating the system architecture for
given problem. However, most of the large systems are heterogeneous and do not
follow single architectural style.
 System categories define the architectural style
1. Components : They perform a function. For example : Database, simple computational
modules, clients, servers and filters.
2. Connectors : Enable communications. They define how the components communicate, co-
ordinate and co-operate. For example : Call, event broadcasting, pipes
3. Constraints : Define how the system can be integrated.

ARCHITECTURAL DESIGN 4. Semantic models : Specify how to determine a system's overall properties from the properties
of its parts.

 The commonly used architectural styles are


1. Data centered architectures.
2. Data flow architectures.
3. Call and return architectures.
4. Object oriented architectures.
5. Layered architectures.
9/25/2021

Data Centered Architecture : Object Oriented Architectures :


 Data centered architecture posses the property of interchangeability. Interchangeability  In object-oriented architectural style, components of a system encapsulate data and
means any component from the architecture can be replaced by a new component operations, which are applied to manipulate the data. In this style, components are
without affecting the working of other components. represented as objects and they interact with each other through methods
(connectors).

Data Flow Architectures : Layered Architectures :

 Architecture series of transformations are applied to prove produced output data. The  The layer architecture is composed of different
set of components called filters are connected by pipes to transform the data from layers. Each layer is intended to perform specific
one component to another. These filters work independently without bothering about operation so machine instruction set can be
the working of neighboring filters. generated. Various components in each layer
perform specific operations.

 The output layer is responsible for performing the


user interface operations while the components in
the inner layer perform operating system
interfaces.

 The components in intermediate layer perform


utility services and application software functions.
 If the data flow generates into a single line of transforms it is termed as batch
sequential.

Call and Return Architectures :

 A call and return architecture enables software designers to achieve a program


structure, which can be easily modified. This style consists of the following two sub
styles.
 Main program/subprogram architecture:
In this, function is decomposed into a control hierarchy where the main program invokes a
number of program components, which in turn may invoke other components.

COMPONENT LEVEL DESIGN

 Remote procedure call architecture:


In this, components of the main or subprogram architecture are distributed over a network
across multiple computers.
9/25/2021

3. Structure charts
Component Level Design :  The structure chart is a principal tools of structure design.
 In the structure chart is module. the module is defined as a collection of program
statement in four attributes.
 Component level design is also called as a Procedural design. After data,
architectural and interface design the component level design occurs. • Input and Output : What the module gets from the invoker is called Input and what
the receiver gets from the module is called Output.
 The goal of component level design is to translate the design model into operational • Function : The function processes in the input and produces the output.
software. • Mechanics : The code or the logic by which the function is carried out.
 The goal of software design strategy is to organize the program modules in such a way • Internal data : It is the own workspace.
that they can be easily developed and can be changed easily if needed. the most
commonly used strategies of software design are
4. Pseudo codes
1. Function oriented design
 Pseudo code is a combination of algorithm written in simple language and programming
2. Object oriented design language statements. This code is effective building block for actual program.
 Pseudo code avoids variable declaration but they are written using some actual
programming language’s constructs, like C, Fortran, Pascal etc.
 Pseudo code contains more programming details than Structured English. It provides a
method to perform the task, as if a computer is executing the code.

Function Oriented Design : Object Oriented Design :

 In function oriented design, the design of a the software system is divided into various The software product can be designed using structured oriented method or using
interacting units. Each unit then becomes a function. object oriented techniques. There are some merits and demerits associated with these
systems which directly affect the software development process.
 A system is viewed as something that performs a set of functions. Starting at this high-
level view of the system, each function is successively refined into more detailed  In this techniques, the overhead of partitioning the structure into modules is involved.
functions. Finding bugs is simple because system structure is modular.

 Various models that can be created in function oriented design are  Objects have their own internal data which define their state.
1. Data flow diagrams
 Similar objects constitute a class. In other words, each object is a member of some
2. Data dictionaries class. Classes may inherit features from super class. Conceptually, objects
3. Structure charts communicate by message passing.
4. Pseudo codes

1. Data flow diagrams


A data flow diagram (DFD) maps out the flow of information for any process or system. It Object Oriented Design :
uses defined symbols like rectangles, circles and arrows, plus short text labels, to show data
inputs, outputs, storage points and the routes between each destination.
 Advantages of OOD
1. The object oriented techniques focus on real world concepts due to which
Communication between system engineer and the customer becomes easy. This
2. Data dictionaries helps in understanding the system as a whole. And proper analysis of the system
The data dictionary can be defined as an organised collection of all data elements of the can be carried out.
system with precise and rigorous definitions so that the user and system analyst will have a 2. The complex system can be partitioned into small modules. This helps in managing
common understanding of inputs, outputs, components of stores and intermediate the large complex system. Errors can be identified efficiently. Even if one module is
calculations. modified to some extent another module remains unaffected. This ultimately reduces
the maintenance cost of the project.
3. One component of the system can be reused in the same system or in another
system. This process is called reusability. Sometimes because of reusability the
overall cost of system development gets reduced to a large extent.
 Disadvantages of OOD
1. These systems are very slow.
2. These systems require more memory.
9/25/2021

Step 3 : Adding Relation


MS Visio Tool :  Just click and drag the type of relation to connect two classes. You can add the relations
such as association, aggregation, generalization relationship.
 Double click on the association to specify it. You can give the association a name and
 Microsoft Visio is software for drawing a variety of diagrams. These include all/or enter role names in the column “End Name”.
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.

 MS Visio is basically software beneath MS Suite, Basically utilized for formats and
charts. They can be utilized for building pictures like flowcharts, choice graphs and
network diagrams. It indeed has sufficient charts to form arranging a straightforward
space format for a conference precise.

 The Microsoft Visio tool is commonly used for designing the UML diagrams. Using this
tool you can draw all kinds of UML diagrams. You can drag and drop different
components of object oriented design and can join them together using appropriate
connector.

Hence are some steps used to create the class diagram in Visio Step 3 : Save the diagram in different formats. You can copy and paste the diagram in Word
Document.
Step 1 : Start Visio 2003 or 2007. Then choose the drawing type. Select Software folder,
choose UML-model diagram icon and UML Static Structure Diagram.
• Place the mouse over the shapes in UML Static Structure Diagram to view more details.

Step 2 : Adding Class


• Click on the Class shape and drag it on the page.
• You can change the name of the class. Right click on the shape and a Class Properties
Window will appear. You can change its name from the name field.
• You can add attributes for the class by clicking Attributes in the right of Class Properties
window. Refer following screen shots for creating class and setting its properties.

USER INTERFACE DESIGN


9/25/2021

User Interface Design : User Interface Design Principals :

 The visual part of a computer application or operating system through which a client  Following design principles are used :
interacts with a computer or software. It determines how commands are given to the 1. User familiarity : Instead of using computer terminology make use of user oriented
computer or the program and how data is displayed on the screen. terminologies. For example in Microsoft Office 'software, the terms such as document,
spreadsheet, letter, folder are used and use of the terms directory, file and identities are
 Types of User Interface : avoided.
• There are two main types of User Interface: 2. Consistency : The appropriate level of consistency should be maintained in the
user interface. For example the commands or menus should be of the same format.
 Text-Based User Interface or Command Line Interface
 Graphical User Interface (GUI) 3. Minimal surprise : The commands should operate in a known way. This makes the
user to easily predict the interface. For example the in word processing document under
the tool menu there should be a facility of spelling and grammar checking.
4. Recoverability : The system should provide recovering facility to user from his
errors so that user can correct those error. For example an undo command should be
given so that the user can correct his errors, or while deleting something the confirmation
action must be provided, so that the user can think again while deleting something.
5. User guidance : The user interface can be effectively used by a novice user if some
user guidance such as help systems, online manuals etc. are supplied.

Text-Based User Interface : Golden rules of User Interface Design :

 This method relies primarily on the keyboard. A typical example of this is UNIX.  Thao Model has proposed three golden rules for user interface design :
1) Place the user in control.
2) Reduce the user’s memory load.
 Advantages : 3) Make the interface consistent.
• Many and easier to customizations options.
• Typically capable of more important tasks.

 Disadvantages :
• Relies heavily on recall rather than recognition.
• Navigation is often more difficult.

Graphical User Interface (GUI) : 1) Place the User in Control :

 GUI relies much more heavily on the mouse. A typical example of this type of interface is  While analyzing any requirement during requirement analysis the user often demands
any versions of the Windows operating systems. for the system which will satisfy user requirements and help him to get things done.
That means the user always wants to control the computerized system.

 Following are the Design Principle to that allows user to control system :
 Advantages :
• Define the interaction modes in such a way that user will be restricted from doing
• Less expert knowledge is required to use it. the unnecessary action.
• Easier to Navigate and can look through folders quickly in a guess and check manner.
• The interaction should be flexible.
• The user may switch quickly from one task to another and can interact with several
different applications.
• Provide the facility of ‘undo’ or ‘interruption’ in user interaction.
• Allow user to customize the interaction.
• Hide technical details from the user.
 Disadvantages :
• The objects appearing on the screen should be interactive with user.
• Typically decreased options.
• Usually less customizable. Not easy to use one button for tons of different variations.
9/25/2021

 Environment analysis and modeling :


2) Reduce the User’s Memory Load : In this phase three major factors are focused i.e. user, task and environment. First of all
the user profile is analyzed to understand the user and to elicit the requirements, then the
tasks that are required to carry out the desired functionality are identified and analyzed. The
 If the user interface is good then user has to remember very less. In fact the design analysis is made on user environment which involves the physical work environment. Finally
should be such that the system remembers more for the user and ultimately it assists analysis model is created for the interface. This model serves as a basis for the design of the
the user to handle the computer based systems. user interface.

 Following are the principle suggested by Mandel to reduce the memory load of the  Interface design :
user : The interface design is a phase in which all the interface objects and corresponding
• Do not force the user to have short term memory. actions of each task are defined.
• Established meaningful defaults.  Implementation :
• Use intuitive shortcuts. The implementation phase involves creation of prototype using which the interface
• The visual layout of the interface should be realistic. scenarios can be evaluated. To accomplish the construction of user interface some
• Disclose the information gradually. automated tools can be used

 Validation :
The goal of validation is to validate the interface for its correct performance. During
validation it is tested whether all the user requirements get satisfied or not. The purpose of
validation is also to check whether the interface is easy to learn and easy to use.

3) Make the Interface Consistent :

 The user interface should be consistent. This consistency can be maintained at three
levels such as
The visual information (all screen layouts) should be consistent throughout and it
should be as per the design standards.
There should be limited at of input help holding the non conflicting information.
The information flow translating from one class to another should be consistent.

 Mandel has suggested following principles for consistent interface design :


• Allow user to direct the correct task into a meaningful manner. WEB APPLICATION DESIGN
• Maintain consistency across the family of products.
• If certain standards are maintained in the previous model of application do not
change it until and unless it is necessary.

User Interface Design Process : Web application Design :

 Designing the user interface is an iterative process which can be defined with the help  In web engineering, the web design can be of two types - it can be Generic and it can
of a spiral model. The designing of an interface starts from the mid of the spiral. be Specific.

 The spiral model encompasses four different frameworks those are:  From generic viewpoint various design models get developed as a outcome of
1. Interface Analysis and Modelling design phase. Using these design models the user requirements can be translated into
the executable code form. At the same time design must be specific. That means the
2. Interface Design web design must address key attributes of the web application in such a manner that
3. Implementation the web engineer can build the complete web application and can test it.
4. Interface Validation
9/25/2021

Design Pyramid :

 The web design can be defined as the design that leads to a model that contains
appropriate mix of aesthetic, content and technology. This mix may vary depending
upon the nature and design activities of the web application.

The Web Design Pyramid

 Interface Design :
The interface design must be easy to use, easy to learn, easy to navigate, intuitive,
consistent, efficient, error free and functional. It should provide a satisfying experience to the end
user. This kind of defines the structure and organization of user interface. It includes the
representation of screen layout, various modes of interactions and navigation mechanism.

 Aesthetic Design :
Aesthetic design means the graphical design. This kind of design define the look and feel of
the web application it includes text style, graphic design, color scheme, text size and related
athletic decisions. In aesthetic design there are two important issues that must be focused :
• Layout Issues
• Graphic Design Issues

 Content Design :
The content design develops the Representation for the content object. It also defines the
mechanism required to instantiate state the relationship of one content object with other. This
design defines the layout, structure and outline of the content present in the web application.

 Architecture Design :
This design defines the hypermedia structure of the web application. The architecture design
focuses on two type of a design architecture
• Content architecture
• Web application architecture

 Navigation Design :
The navigation pathways are nothing but the links which allow user to access the content
object and functionalities of the web application. To define the navigational pathways designer
must do following things -
• Identify the semantics of navigation for different users of the site.
• Define the mechanism (Syntax) or a method for achieving the navigation.

 Component Design :
This design defines the processing logic required to implement functional components.

You might also like

pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy